libgdx
Déplacement des acteurs sur le chemin à vitesse constante
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