2014-04-09 216 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