libgdx - 等待完成一个演员的动作

libgdx - wait to complete an action of an actor

我的问题是我想让演员做一个动作(在本例中是淡入淡出)并在动作结束后立即切换到游戏屏幕。不过动作说完还没完成,不过赶紧换了游戏画面。

我想等到完成此操作后再更改屏幕.. 总的来说,我想知道如何在游戏中制作等待指令,因为有时候在任何事情发生之前想要留出一些时间是件好事。

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

您需要做的是创建一个 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

对操作使用静态导入,方式更简单。

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!");
     }
});

将您想要的代码 运行 放入 运行nable。

欲了解更多信息,

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