我的平铺地图有问题。
我必须逐层渲染其中一个图层中的每个图块(从图块到图块)。
我怎么能意识到它?
我试过了,但它什么都没有。
private void drawObject(boolean down)
{
final String objects = "objects";
for (MapObject obj : world.getMap().getLayers().get(objects).getObjects())
{
if (!down)
{
if ((Integer) obj.getProperties().get("y") > world.getPlayer().getBody().getPosition().y)
{
world.getTiledMapRenderer().renderObject(obj);
}
}
}
}
答案 0 :(得分:1)
您似乎正在尝试渲染对象图层。为了从对象层渲染对象,您需要一些其他输入,例如:
for (MapObject mo : map.getLayers().get("Enemies").getObjects()) {
Enemy e = new Enemy(new Sprite(new Texture("maps/snailWalk1.png")), (TiledMapTileLayer)map.getLayers().get(0));
e.setPosition(((RectangleMapObject)mo).getRectangle().getX(), ((RectangleMapObject)mo).getRectangle().getY());
enemies.add(e);
}
在渲染器方法中,请执行以下操作:
renderer.render();
renderer.getSpriteBatch().begin();
for (Enemy e : enemies) {
e.draw(renderer.getSpriteBatch());
}
对于渲染器,您使用OrthonogalTiledMapRenderer或IsometricTiledMapRenderer对象。您应该将其声明为类对象
OrthogonalTiledMapRenderer renderer = new OrthogonalTiledMapRenderer(map);
如果你想做的是逐层渲染一个图层,我会说你应该采取另一种方法,并尝试将这个图层作为一个对象图层,然后从这些图层中逐步创建对象。