Slick2d Java 反转物体的移动方向
Slick2d Java reversing the moving direction of an object
我正在使用 Java 和 slick2d 库开发这款游戏,我应该在某些移动车辆(例如:自行车)到达某个 x 坐标时反转它们的方向。
逻辑看起来很简单,但其中一些会直接越过 x 坐标,而有些则会反转方向。不明白为什么。任何帮助将不胜感激。
这是我在 update() 方法中的代码。 getX() returns 来自超类的 x 位置作为浮点数。 BIKE_SPEED 是一个浮点数,delta 是自上一帧以来经过的毫秒数。
@Override
public void update(Input input, int delta) {
if ((int)getX() == 24 || (int)getX() == 1000) {
moveRight = !moveRight;
}
move(BIKE_SPEED * delta * (moveRight ? 1 : -1), 0);
}
我不熟悉 slick2d,但一般来说,在这种情况下最好使用 >=
或 <=
而不是 ==
。物体(自行车)可能 "jump" 正好越过边界,而不会触发你改变方向的条件。
我正在使用 Java 和 slick2d 库开发这款游戏,我应该在某些移动车辆(例如:自行车)到达某个 x 坐标时反转它们的方向。 逻辑看起来很简单,但其中一些会直接越过 x 坐标,而有些则会反转方向。不明白为什么。任何帮助将不胜感激。
这是我在 update() 方法中的代码。 getX() returns 来自超类的 x 位置作为浮点数。 BIKE_SPEED 是一个浮点数,delta 是自上一帧以来经过的毫秒数。
@Override
public void update(Input input, int delta) {
if ((int)getX() == 24 || (int)getX() == 1000) {
moveRight = !moveRight;
}
move(BIKE_SPEED * delta * (moveRight ? 1 : -1), 0);
}
我不熟悉 slick2d,但一般来说,在这种情况下最好使用 >=
或 <=
而不是 ==
。物体(自行车)可能 "jump" 正好越过边界,而不会触发你改变方向的条件。