libgdx - 等待完成演员的动作

时间:2015-08-29 22:31:33

标签: libgdx action delay wait actor

我的问题是我想让演员做一个动作(在这种情况下是淡入淡出),并且在动作结束后,切换到游戏画面。但是动作没有完成,但很快改变了游戏画面。

我想在更改屏幕之前等待完成此操作..而且一般来说,我想知道如何在游戏中制作等待说明,因为在发生任何事情之前想要留出一些时间有时会很好。

myActor.addAction(Actions.fadeIn(2));
setScreen(AnotherScreen);

2 个答案:

答案 0 :(得分:4)

使用静态导入操作更容易。

import static com.badlogic.gdx.scenes.scene2d.actions.Actions.*;

Actor.addAction(sequence(fadeOut(2f), run(new Runnable() {
     public void run () {
         System.out.println("Action complete!");
     }
});

将您想要运行的代码放在runnable中。

欲了解更多信息,

https://github.com/libgdx/libgdx/wiki/Scene2d#actions

答案 1 :(得分:2)

您需要做的是创建一个Action子类并覆盖Action#act,您将在其中调用setScreen(AnotherScreen);

然后,使用Actions#sequence将两个操作包装到单个SequenceAction对象中。

Action switchScreenAction = new Action(){
  @Override
  public boolean act(float delta){
    setScreen(AnotherScreen);
    return true;
  }
};

myActor.addAction(Actions.sequence(
  Actions.fadeIn(2)
  , switchScreenAction
));

有关详细信息,请查看:https://github.com/libgdx/libgdx/wiki/Scene2d#complex-actions