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