LibGDX:从平铺到平铺渲染平铺贴图

时间:2014-04-09 12:09:17

标签: java android libgdx

我的平铺地图有问题。

我必须逐层渲染其中一个图层中的每个图块(从图块到图块)。

我怎么能意识到它?

我试过了,但它什么都没有。

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); 
            }
        }
    }
}

1 个答案:

答案 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);

如果你想做的是逐层渲染一个图层,我会说你应该采取另一种方法,并尝试将这个图层作为一个对象图层,然后从这些图层中逐步创建对象。

相关问题