简体   繁体   English

LibGDX:在图块之间渲染图块地图

[英]LibGDX: rendering tiled-maps from tile to tile

I have a problem with tiled-maps. 我对平铺地图有疑问。

I must to render every tile in one of the layers tile-by-tile (from tile to tile). 我必须逐个瓦片(从一个瓦片到另一个瓦片)渲染层之一中的每个瓦片。

How can I realize it? 我怎么知道呢?

I tried it, but it renders nothing. 我试过了,但是什么也没做。

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

It seems like you are trying to render an object layer. 似乎您正在尝试渲染对象层。 In order to render objects from the object layer, you need some other input for example: 为了从对象层渲染对象,您需要其他一些输入,例如:

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

And in your renderer method do like this: 在渲染器方法中执行以下操作:

renderer.render();

renderer.getSpriteBatch().begin();
    for (Enemy e : enemies) {
        e.draw(renderer.getSpriteBatch());
    }

As for the renderer you use a OrthonogalTiledMapRenderer or an IsometricTiledMapRenderer object. 至于渲染器,您可以使用OrthonogalTiledMapRenderer或IsometricTiledMapRenderer对象。 You should declare this as a class object 您应该将此声明为类对象

OrthogonalTiledMapRenderer renderer = new OrthogonalTiledMapRenderer(map);

If you want to do is render a layer tile-by-tile, I would say that you should take another approach, and try to make this layer as an object layer, and then create objects programitcally out of these. 如果要做的是逐块渲染图层,我想说您应该采用另一种方法,并尝试将该图层作为对象图层,然后以编程方式从中创建对象。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM