【发布时间】:2016-02-06 05:26:58
【问题描述】:
这是我试图让代码正常工作的代码。当我的角色与特定对象发生碰撞时,它应该运行。瓷砖获得了新的属性,但在渲染过程中不会改变。我的目标是给他们新的属性并渲染新的瓷砖。
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组代码是我现在运行的代码。
标签: java eclipse libgdx rendering game-physics