我正在使用Java和slick2d库来开发这款游戏,当某些运动的车辆(例如:自行车)到达某个x坐标时,我应该反转它们的方向。 逻辑看起来很简单,但其中一些逻辑正好移过x坐标,而另一些逻辑相反。对于为什么感到困惑。任何帮助将不胜感激。
这是我在update()方法中的代码。 getX()以浮点数形式返回超类的x位置。 BIKE_SPEED是一个浮点数,增量是自上一帧以来经过的毫秒数。
@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);
}
答案 0 :(得分:0)
我不熟悉slick2d,但总的来说,在这种情况下,最好使用>=
或<=
而不是==
。物体(自行车)可能会“越过”边界,而不会触发方向变化。