Libgdx: Action.OnCompletionListener

Erstellt am 14. Feb. 2014  ·  3Kommentare  ·  Quelle: libgdx/libgdx

Ich konnte keinen Weg finden, um zu überprüfen, ob eine spezielle Aktion (parallel zu einigen anderen auf demselben Akteur) abgeschlossen ist. So etwas wie ein Interface Action.OnCompletionListener wie Music.OnCompletionListener wäre wirklich nett.

Aktion a = Actions.fadeOut(10);
a.setOnCompletionListener (neue Aktion.OnCompletionListener() {
//etwas tun.
})

Gibt es einen besonderen Grund, warum so etwas nicht integriert ist?

Hilfreichster Kommentar

Sie können Folgendes verwenden:

sequence(someAction, new Action() {
    public boolean act (float delta) {
        // This runs when someAction is done.
        return true;
    }
});
// OR, one line of code less:
sequence(someAction, run(new Runnable() {
    public void run () {
        // This runs when someAction is done.
    }
}));

Ich kann mir kein Szenario vorstellen, in dem ein Abschluss-Listener nützlicher wäre.

Alle 3 Kommentare

Sie können Folgendes verwenden:

sequence(someAction, new Action() {
    public boolean act (float delta) {
        // This runs when someAction is done.
        return true;
    }
});
// OR, one line of code less:
sequence(someAction, run(new Runnable() {
    public void run () {
        // This runs when someAction is done.
    }
}));

Ich kann mir kein Szenario vorstellen, in dem ein Abschluss-Listener nützlicher wäre.

Ach, das ist gut! Vielen Dank. Wusste nicht, dass man so einfach eigene Aktionen integrieren kann.

Können Sie mir übrigens erklären, was eine AfterAction macht (Actions.after(Action))? Ich konnte nicht herausfinden, was. Bin bei der Suche nach einer Listener-Methode darüber gestolpert.

Ja, die ganze Idee mit Aktionen ist, dass Sie ganz einfach Ihre eigenen schreiben können. :)

AfterAction "Führt eine Aktion erst aus, nachdem alle anderen Aktionen auf dem Akteur zum Zeitpunkt des Hinzufügens dieser Aktion beendet wurden." Sie fügen also die Aktion hinzu und sie wird erst abgeschlossen, wenn alle anderen Aktionen abgeschlossen sind. Sie können dies verwenden, um eine Sequenz zu blockieren, damit Dinge nach anderen Dingen passieren.

CountdownEventAction ist eine weitere Möglichkeit, um zu steuern, dass Aktionen nach anderen Dingen ausgeführt werden. Siehe diesen Thread und den von dort verlinkten Blogbeitrag:
http://www.badlogicgames.com/forum/viewtopic.php?t=12322&p=56104

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen