我无法找到一种方法来检查一个特殊动作(与同一演员的其他一些动作平行)是否已经完成。 像 Music.OnCompletionListener 这样的接口 Action.OnCompletionListener 会非常好。
动作 a = Actions.fadeOut(10);
a.setOnCompletionListener(new Action.OnCompletionListener() {
//做一点事。
})
没有像这样集成的东西有什么特殊原因吗?
您可以使用:
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.
}
}));
我想不出一个完成监听器会更有用的场景。
哦,那很好! 非常感谢。 不知道您可以如此轻松地集成自己的 Actions。
顺便问一下,您能否向我解释一下 AfterAction 的作用(Actions.after(Action))? 我不知道是什么。 在搜索侦听器方法时偶然发现它。
是的,动作的整个想法是您可以轻松编写自己的。 :)
AfterAction “仅在添加此动作时该角色上的所有其他动作都完成后才执行一个动作。” 因此,您添加了操作,并且在所有其他操作完成之前它不会完成。 您可以使用它来阻止一个序列,以使事情在其他事情之后发生。
CountdownEventAction 是另一种控制在其他事情之后发生动作的方法。 请参阅此线程和从那里链接的博客文章:
http://www.badlogicgames.com/forum/viewtopic.php?t=12322&p=56104
最有用的评论
您可以使用:
我想不出一个完成监听器会更有用的场景。