Libgdx: Action.OnCompletionListener

Criado em 14 fev. 2014  ·  3Comentários  ·  Fonte: libgdx/libgdx

Não consegui encontrar uma maneira de verificar se uma ação especial (paralela a algumas outras no mesmo ator) foi concluída. Algo como uma interface Action.OnCompletionListener como Music.OnCompletionListener seria muito bom.

Ação a = Actions.fadeOut(10);
a.setOnCompletionListener(new Action.OnCompletionListener() {
//faça alguma coisa.
})

Existe uma razão especial pela qual não há nada como isso integrado?

Comentários muito úteis

Você pode usar:

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.
    }
}));

Não consigo pensar em um cenário em que um ouvinte de conclusão seja mais útil.

Todos 3 comentários

Você pode usar:

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.
    }
}));

Não consigo pensar em um cenário em que um ouvinte de conclusão seja mais útil.

Ah, isso é bom! Muito obrigado. Não sabia que você pode integrar suas próprias ações tão facilmente.

A propósito, você poderia me explicar o que um AfterAction faz (Actions.after(Action))? Eu não conseguia descobrir o quê. Tropecei nele enquanto procurava um método de ouvinte.

Sim, toda a ideia com ações é que você pode facilmente escrever suas próprias ações. :)

AfterAction "Executa uma ação somente depois que todas as outras ações no ator no momento em que essa ação foi adicionada forem concluídas." Então, você adiciona a ação e ela não é concluída até que todas as outras ações sejam concluídas. Você pode usar isso para bloquear uma sequência para fazer as coisas acontecerem depois de outras coisas.

CountdownEventAction é outra maneira de controlar as ações que acontecem depois de outras coisas. Veja este tópico e a postagem do blog vinculada a partir daí:
http://www.badlogicgames.com/forum/viewtopic.php?t=12322&p=56104

Esta página foi útil?
0 / 5 - 0 avaliações