我想为我的游戏创建一个随机的平铺地图,这是我到目前为止所做的:
switch(MathUtils.random(2)){
case 0:
tileX+=16;
loadedTiles ++;
//game.batch.draw(tile1, tileX, tileY);
System.out.print("tile1");
currentTile = tile1;
break;
case 1:
tileX+=16;
loadedTiles ++;
//game.batch.draw(tile2, tileX, tileY);
System.out.print("tile2");
currentTile = tile2;
break;
case 2:
tileX+=16;
loadedTiles ++;
//game.batch.draw(tile3, tileX, tileY);
System.out.print("tile3");
currentTile = tile3;
break;
}
game.batch.begin();
game.batch.draw(currentTile, tileX, tileY);
game.batch.end();
}
不是单独渲染它们,而是想将它们添加到数组中并进行渲染 他们都在一起,所以如果我有一个像这样的数组:
ArrayList<Texture> tiles;
然后在所有案例选项中添加一些内容,例如:
tiles.add(tile1);
问题:
如何渲染数组并获得相关的坐标以便渲染它们,这是否会添加到数组中?
答案 0 :(得分:0)
这将使用一个批处理器,来自这些行
game.batch.begin();
game.batch.draw(currentTile, tileX, tileY);
game.batch.end();
您似乎已经在使用一个。将开始位置放在绘制切片的循环之前,将结束放置到循环结束的位置。
答案 1 :(得分:0)
我解决了类似的问题:
batch.begin();
for (Ground ground : groundArray){
batch.draw(ground.getTextureRegion(), ground.x, ground.y);
}
batch.end();
有关详细信息,请查看HERE
如果您有任何问题,我将很乐意更新我的回答,只需在评论中发帖。
你去了:
public class Ground {
public float x;
float y;
private TextureRegion texture;
private Rectangle bounds;
public Ground(float x, float y){
texture = Assets.atlas.findRegion("ground");
this.x = x;
this.y = y;
bounds = new Rectangle(x, y, 100, 498);
}
public TextureRegion getTextureRegion(){
return texture;
}
public Rectangle getBounds(){
return bounds;
}
}
如果您想了解Asstes.atlas.findRegions,请查看HERE