Java 将对象移动到特定位置

Java 将对象移动到特定位置,java,libgdx,Java,Libgdx,我这里有一个方法,可以加上或减去位置,到达一个人需要到达的设定位置,如果盒子需要向左移动,它工作得很好,但是如果它需要向右移动,它似乎不工作,我知道它有问题,我就是想不出来 public void doMovements(float delta) { if (!movements.isEmpty()) { Vector2 vec = movements.get(0); if (pos.x > vec.x) pos.x -=

我这里有一个方法,可以加上或减去位置,到达一个人需要到达的设定位置,如果盒子需要向左移动,它工作得很好,但是如果它需要向右移动,它似乎不工作,我知道它有问题,我就是想不出来

    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点,如果盒子必须向左移动,它工作得很好,但是如果它必须向右移动,它会断裂,谢谢你的帮助

如果通过两个值的差来计算delta,它有时可能是负数。按照您编写的方式,代码假定增量始终为正。你有没有确定delta是绝对值

如果delta是正数和负数,则不需要两个单独的语句。你只需要一个:

pos.x += VELOCITY * delta;

只要确保delta在应该是负的时候是负的,在应该是正的时候是正的

我发现了问题所在,我正在检查它是否在正确的车道上 我需要改变

if (pos.x - vec.x < CLOSE_VEC) {


我需要确保该值不是负值,这样矩形才能向右移动。

我解决了问题,问题在于if pos.x-vec.xif (!(pos.x - vec.x < 0) && pos.x - vec.x < CLOSE_VEC) {