我正在尝试对我一直在制作的测试游戏实施一些碰撞检测。 我已经使用TiledMap来创建地图并在其中一个tile上设置一个属性为blocked = true 然后在第0层绘制此图块。
然后,我使用以下代码
检查磁贴是否存在于播放器移动的方向if (input.isKeyDown(Input.KEY_DOWN)) {
sprite = down;
sprite.update(delta);
int tileID = map.map.getTileId((int) x / map.map.getTileWidth(), (int) y / map.map.getTileHeight() + 1, 0);
String value = map.map.getTileProperty(tileID, "blocked", "false");
if (value.equals("true")) {
y += delta * 0.1f;
System.out.println("Tile ID: " + (int) (x / map.map.getTileWidth()) + ", " + (int) (y / map.map.getTileHeight() + 1) + " Try to walk down. Tile value below the player is:" + value);
}
}
每个方向都重复此操作。
我遇到的问题是它正在为不正确的磁贴拾取被阻止的属性 您可以使用this video更好地理解。黄色瓷砖是碰撞/阻挡的瓷砖。
答案 0 :(得分:-1)
我认为您遇到此问题是因为您更新了if
声明
尝试在if
:
sprite = down;
sprite.update(delta);
但是我想其中一个将精灵的面朝下,因此不应该在里面。