Buscar..


Movimiento simple entre dos ubicaciones.

Para esto la mejor solución es usar actions . Para agregar una nueva acción a un actor en Scene2D simplemente llame:

Action action = Actions.moveTo(x,y,duration);
actorObject.addAction(action);

Donde x e y es la ubicación objetivo y la duración es la velocidad de este movimiento en segundos ( float ).

Si desea detener esta acción (y el actor), puede hacerlo llamando a:

actorObject.removeAction(action);

o puedes eliminar todas las acciones llamando a:

actorObject.clearActions();

Esto detendrá inmediatamente la ejecución de la (s) acción (es).

La acción moveTo manipula las propiedades x e y del actor, de modo que cuando dibuje el actor en la pantalla, utilice siempre getX () y getY () para dibujar texturas. Al igual que en el siguiente ejemplo:

public class MovingActor extends Actor {

    private Action runningAction;
    private float speed = 2f;

    public void moveTo(Vector2 location) {
       runningAction = Actions.moveTo(location.x, location.y, speed);
       this.addAction(runningAction);
    }

    public void stopAction() {
       this.removeAction(runningAction);
    }

    public void stopAllActions() {
       this.clearActions();
    }

    @Override
    public void draw(Batch batch, float parentAlpha){
        batch.draw(someTexture, getX(), getY());
    }
}


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow