Enemigos Path Issue

Hola, estoy un poco avergonzado por un problema que no puedo solucionar por mi cuenta desde hace horas. Hice un algoritmo para mover enemigos punto por punto, funciona bien cuando el camino va de izquierda a derecha. Sin embargo, cuando el camino va de derecha a izquierda, el enemigo salta inmediatamente al siguiente punto, pero solo cuando el punto está por debajo del anterior, cuando el siguiente punto está por encima del anterior, el programa funciona como se esperaba.

No tengo idea de qué causa este problema. Espero que alguien pueda ayudarme, estaría agradecido.

public void update (float dt) {
    if (play) {

        angle = (float)Math.atan2(path.get(waypoint).y - positon.y, path.get(waypoint).x - positon.x);          

        velocity.set((float)Math.cos(angle) * speed, (float)Math.sin(angle) * speed);

        positon.set(positon.x + velocity.x * dt, positon.y + velocity.y * dt);

        if(isWaypointReached(dt)) {
            positon.set(path.get(waypoint).x, path.get(waypoint).y);
            if(waypoint + 1 >= path.size) {
                positon.set(path.first().x, path.first().y);
                waypoint = 1;               
            }
            else 
                waypoint++;
        }
    }
}

Ya he tratado de invertir los ejes X sin éxito.

path es una matriz de Vector2 que contiene la posición de cada punto.

Waypoint el siguiente punto.

private boolean isWaypointReached(float dt) {
    if (path.get(waypoint).x - positon.x <= speed / tolerance * dt && path.get(waypoint).y - positon.y <= speed / tolerance *dt) 
        return true;
}

Tolérance es un entero igual a 3.

Aquí hay una foto para ser más clara. Mostrar problema

Respuesta 1

Estoy trabajando en una aplicación de Android y estoy usando el comando .setAdapter y obtengo el garabato rojo debajo de él. Eclipse me dice esto. "El método setAdapter (PagerAdapter) en el tipo ViewPager ...

Soy muy nuevo en Java Swing y Java en general (mi clase acaba de terminar en Scanner y conceptos básicos). Me enseñaron solo conceptos básicos de Swing, que es "¿Qué es un JFrame..etc" y estoy atascado en cómo diseñar o ...

Nuestro equipo tiene un applet que funciona bien en Oracle JRE 7u5. Al actualizar el JRE a 7u6 o 7u7, el applet no se inicializa. El cargador de clases lanza una excepción durante la carga de ...

Estoy usando un conjunto de paneles de desplazamiento para usar una barra de desplazamiento personalizada y, entre otras cosas, quería instalar un oyente en el pulgar de la barra de desplazamiento para que cada vez que el mouse ingrese al área del pulgar pueda ...