我在这里有一个方法,可以添加或减去位置,以获得一个人需要到达的设置位置,如果该框需要向左移动它工作得很好但是如果它需要移动到右边它似乎不起作用我知道它有一个问题我只是无法弄明白
public void doMovements(float delta) {
if (!movements.isEmpty()) {
Vector2 vec = movements.get(0);
if (pos.x > vec.x)
pos.x -= VELOCITY * delta;
else if (pos.x < vec.x)
pos.x += VELOCITY * delta;
System.out.println(pos.x);
if (pos.x - vec.x < CLOSE_VEC) {
movements.remove(movements.get(0));
System.out.println(movements.size());
}
}
rect.y = pos.y;
rect.x = pos.x;
}
我需要从a点到b点如果盒子必须向左移动它才能完美地工作但是如果它必须向右移动它会打破感谢帮助!
答案 0 :(得分:0)
如果您通过两个值的差异计算delta
,有时可能是负数。他们用它写的方式,代码假设delta总是正的。你确定delta是一个绝对值。
如果delta是正数和负数,那么您不需要两个单独的语句。你只做一个:
pos.x += VELOCITY * delta;
确保delta应该是负数,而应该是
时为正数答案 1 :(得分:0)
我想出了我正在检查它是否在错误的正确车道上的问题 我需要改变
if (pos.x - vec.x < CLOSE_VEC) {
要
if (!(pos.x - vec.x < 0) && pos.x - vec.x < CLOSE_VEC) {
我需要确保该值不是负值,以便矩形可以向右移动。