Recherche…


Mouvement simple entre deux emplacements

Pour cela, la meilleure solution consiste à utiliser des actions . Pour ajouter une nouvelle action à un acteur de Scene2D appelez simplement:

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

Où x et y est l'emplacement cible et la durée est la vitesse de ce mouvement en secondes ( float ).

Si vous voulez arrêter cette action (et l'acteur par elle), vous pouvez le faire en appelant:

actorObject.removeAction(action);

ou vous pouvez supprimer toutes les actions en appelant:

actorObject.clearActions();

Cela arrêtera immédiatement l'exécution de l'action.

L'action moveTo manipule les propriétés x et y de l'acteur. Ainsi, lorsque vous dessinez l'acteur à l'écran, utilisez toujours getX () et getY () pour dessiner des textures. Tout comme dans l'exemple suivant:

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
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow