2014-04-09 116 views
0

我有平铺地图的问题。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

看起来你似乎正在尝试渲染一个对象层。为了从对象层渲染对象,你需要一些其他的输入,例如:

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

如果你想要做的就是渲染层瓦片接一个区块,我会说,你应该采取另一种方法,并设法使该层为对象层,然后从这些对象中逐步创建对象。

+0

哦,有没有可能在代码中没有纹理? – Romanzi

+0

否 - 在对象图层中需要代码中的纹理AFAIK – Ulbo