[英]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.