我的问题是我想让演员做一个动作(在这种情况下是淡入淡出),并且在动作结束后,切换到游戏画面。但是动作没有完成,但很快改变了游戏画面。
我想在更改屏幕之前等待完成此操作..而且一般来说,我想知道如何在游戏中制作等待说明,因为在发生任何事情之前想要留出一些时间有时会很好。
myActor.addAction(Actions.fadeIn(2));
setScreen(AnotherScreen);
答案 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中。
欲了解更多信息,
答案 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