我正试图让我的角色在碰撞的瓷砖地图上移动。除了一件事,一切都很好。我给你看了一张有问题的照片:
也就是说,当我到达上面的瓷砖时,我无法移动到任何地方。如果你是从左边来的,我不能向上或向下移动。如果你到达底部,我可以向左移动但不是向右移动。当你到达右边时,我可以向任何方向移动。
老实说,我不知道可能会失败的是什么。我认为它与if(...)有关,因为如果我改变顺序,我可以移动的地址改变:/
这里我留下一些代码:
boolean collision = false;
if(Keyboard.isKeyDown(Keyboard.KEY_UP)) {
for(int i = 0; i < map.GetNumLayers(); i++) {
if(UpTile(map, i) > 128) {
collision = true;
}
}
if(!collision) AddPos(0.0f, -vel);
}
if(Keyboard.isKeyDown(Keyboard.KEY_LEFT)) {
for(int i = 0; i < map.GetNumLayers(); i++) {
if(LeftTile(map, i) > 128) {
collision = true;
}
}
if(!collision) AddPos(-vel, 0.0f);
}
if(Keyboard.isKeyDown(Keyboard.KEY_DOWN)) {
for(int i = 0; i < map.GetNumLayers(); i++) {
if(DownTile(map, i) > 128) {
collision = true;
}
}
if(!collision) AddPos(0.0f, vel);
}
if(Keyboard.isKeyDown(Keyboard.KEY_RIGHT)) {
for(int i = 0; i < map.GetNumLayers(); i++) {
if(RightTile(map, i) > 128) {
collision = true;
}
}
if(!collision) AddPos(vel, 0.0f);
}