【发布时间】:2013-10-10 03:24:33
【问题描述】:
我有一个包含形状(矩形)的数组,然后是另一个形状,当它与数组中的一个形状发生碰撞时,我希望它不能通过,所以形状数组基本上是一个墙壁数组形不能通过。以下是我目前正在尝试的方式(W 键示例):
private boolean CanMove() {
for(Shape wall : mazeWalls) {
if(character.intersects(wall))
return true;
}
return false;
}
if (keyInput.isKeyDown(keyInput.KEY_W)) {
for(int i = 0; i <= MoveSpeed; i++) {
char_y--;
if(CanMove()) {
char_y++;
break;
}
}
}
形状数组非常小,所以我正在检查它 - 现在它会停止,但它会卡在墙上,无法退出/朝任何其他方向前进。它只是卡在墙上。如果有人有更好的方法来做到这一点,我将使用 Slick 和 LWJGL 或解决方案,我将不胜感激。谢谢。
【问题讨论】:
-
你的
CanMove方法要么命名错误,要么返回错误的值,因为如果角色与墙相交,你告诉它返回 true,这实际上应该是 false。上次我检查了如果你面对墙壁就不能移动。
标签: java lwjgl collision slick2d slick