我正在使用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);
}
发布于 2018-09-26 05:55:18
我不熟悉slick2d,但一般来说,在这种情况下,最好使用>=
或<=
而不是==
。物体(自行车)可能会“跳”过边界,而不会触发你改变方向的情况。
https://stackoverflow.com/questions/52507145
复制相似问题