获取TextureAtlas中用于创建Sprite的名称的方法

时间:2014-08-03 18:25:54

标签: java libgdx

我有一个使用这个构造函数创建精灵的类:

private Sprite sprite;
public Terrain(Sprite sprite) {
        this.Sprite = sprite;
}

我把这些地形精灵放到像这样的二维数组中:

TextureAtlas atlas = new TextureAtlas("atlas.pack");
tiles[0][0] = new Terrain(atlas.createSprite("road");
tiles[0][1] = new Terrain(atlas.createSprite("grass");
[...]

我还有一个Player类可以在我的棋盘上走来走去,玩家的位置存储在课堂上。我想在我的terrain类中有一个返回Terrain类型的方法,例如" road"或"草"。我想这样做,所以玩家的行为会有所不同,这取决于他站在哪一块地形并移动到哪里。

是否可以使用我的代码执行此操作? 我确实考虑过只扩展我的构造函数并添加另一个与使用的纹理相同的字符串,但我认为可能有一种更简单的方法。

1 个答案:

答案 0 :(得分:0)

实际上你可以创建一个" TerrainType"你的Terrain类的属性,如:

private Sprite sprite;
private TerrainType terrainType;
public Terrain(Sprite sprite, TerrainType terrainType) {
        this.sprite = sprite;
        this.terrainType = terrainType;
}

其中TerrainType可以是枚举:

enum TerrainType {
    GRASS, ROAD;
}

然后像这样实例化你的TerrainType:

new Terrain(atlas.createSprite("road"), TerrainType.ROAD);