libgdx
Schauspieler mit konstanter Geschwindigkeit auf den Weg zu bringen
Suche…
Einfache Bewegung zwischen zwei Orten
Die beste Lösung hierfür sind actions
. Um einem Schauspieler in Scene2D
eine neue Aktion Scene2D
rufen Scene2D
einfach Scene2D
:
Action action = Actions.moveTo(x,y,duration);
actorObject.addAction(action);
Dabei ist x und y der Zielort und die Dauer ist die Geschwindigkeit dieser Bewegung in Sekunden ( float
).
Wenn Sie diese Aktion (und den Schauspieler durch sie) abbrechen möchten, können Sie dies tun, indem Sie Folgendes aufrufen:
actorObject.removeAction(action);
oder Sie können alle Aktionen entfernen, indem Sie Folgendes aufrufen:
actorObject.clearActions();
Dadurch wird die Ausführung der Aktion (en) sofort gestoppt.
Die moveTo-Aktion manipuliert die x- und y -Eigenschaft des Darstellers. Wenn Sie den Darsteller auf den Bildschirm zeichnen, sollten Sie immer mit getX () und getY () Texturen zeichnen. Genau wie im folgenden Beispiel:
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
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow