在libgdx中渲染时,Tiles没有完全更新

时间:2016-02-06 05:26:59

标签: java eclipse libgdx rendering game-physics

这是我试图正常工作的代码。当我的角色与特定对象发生碰撞时,应该运行。磁贴获得新属性,但在渲染过程中不会更改。我的目标是给他们新的属性并渲染新的瓷砖。

collisionLayer = (TiledMapTileLayer) map.getLayers().get(0);
                for(int x = 0; x < collisionLayer.getWidth();x++){
                    for(int y = 0; y < collisionLayer.getHeight();y++){
                        cell = collisionLayer.getCell(x,y);
  if(cell.getTile().getProperties().containsKey("hiddenwall")) {    
                        cell.setTile(map.getTileSets().getTile(2));
                    }
                    }
               }

这是有效的旧代码。在碰撞时,它将从玩家位置获得瓦片,并且在与碰撞瓦片碰撞时,它将使瓦片达到新的块类型并进行设置。下面的代码正常工作和显示。上面的代码没有。任何人都知道为什么?

Cell cell = collisionLayer.getCell(
                    (int) ((getX()) / (collisionLayer.getTileWidth() )),
                    (int) ((getY())/ (collisionLayer.getTileHeight() )));
             cell.setTile(map.getTileSets().getTile(2));

1 个答案:

答案 0 :(得分:0)

事实证明我在错误的地方运行我的方法。我需要在我的程序的render方法中运行它。虽然它确实在其他地方有效。 (在我的碰撞检测中)在瓷砖上有一个瓷砖。检查地图上的每个图块都不适用于所有其他机制。一旦我在渲染方法中运行代码,它每次都像一个魅力。