如何检测Android的Libgdx(0.9.7)中的动作结束

Qie*_*ngo 8 android action libgdx

在最新版本的Libgdx(0.9.7或libgdx-nightly-20120904)中,动作监听器被删除.所以我不知道如何有效地完成我的功能:

  1. 精灵移动到目的地.
  2. 该运动包含许多MoveToActions或MoveByActions.
  3. 在上一个结束后执行以下操作.
  4. 行为之前可以修改其余行动.

实际上,重点是如何在前一个结束之后采取下一步行动,我认为比较行为时间并不是一个明智的方法.

有谁能够帮我?谢谢 !

Roa*_*tad 42

不确定这是否回答了你的问题,但这是模拟"动作完成的监听器"的一种方法:

Action completeAction = new Action(){
    public boolean act( float delta ) {
        // Do your stuff
        return true;
    }
};

Action actions = sequence(fadeIn(1f), fadeOut(1f), completeAction);
Run Code Online (Sandbox Code Playgroud)

(来源:http://steigert.blogspot.com.br/2012/07/13-libgdx-tutorial-libgdx-refactoring.html)

  • 哇,我认为这个答案更好,因为我在循环之外做了我的动作 (3认同)

aac*_*neo 9

我认为最好的方法是保持简单.您可以通过使用来轮询演员是否有任何操作

if (actor.getActions().size() > 0) {no actions left!!} 
Run Code Online (Sandbox Code Playgroud)

放置代码的好地方就在actor.act()附近;

无论如何,您可以使用sequenceAction执行一系列操作:

import static com.badlogic.gdx.scenes.scene2d.actions.Actions.*; 
...
actor.addAction(sequence(moveTo(200, 100, 2), moveBy(20,30, 3), delay(0.5f), rotateTo(180, 5)));
Run Code Online (Sandbox Code Playgroud)

这将在他们完成后一个接一个地执行这些操作.

您可以在此处查看夜间文档以获取更多信息:http://code.google.com/p/libgdx/wiki/scene2d

这就是你需要的吗?(我不确定我是否理解第4步).

如果您需要更具体的内容,请再次询问.您还可以查看Actor类源代码,以便更好地理解如何处理操作. https://github.com/libgdx/libgdx/blob/master/gdx/src/com/badlogic/gdx/scenes/scene2d/Actor.java