如何在Scene2D libGDX中更改屏幕

Chr*_*ris 3 java android libgdx scene2d

我一直在谷歌搜索有关如何使用Scene2D使用LibGDX的多个屏幕的教程.到目前为止,这是我在场景处理课中的内容,但我不知道从哪里开始.我知道我必须对构造函数做一些事情,MainMenu.java但我不知道它是什么.

到目前为止我得到了什么:

public class ScreenHandler extends Game{
    public MainMenu Main;
    @Override
    public void create() {
          Main= new MainMenu();
          setScreen(Main);

    }

}
Run Code Online (Sandbox Code Playgroud)

Mic*_*ick 6

我不喜欢让我的屏幕课程与我的Game课程相结合.我正在使用的方法是我所有游戏屏幕的抽象类,它有一个标志和功能,表示正在请求"下一个屏幕".然后render我的Game类的方法可以检查该标志并相应地渲染新屏幕.

public class MyGame extends Game {

    // ...

    @Override
    public void create() {
        GameScreen screen1 = new GameScreen(); // extends AbstractScreen
        GameScreen screen2 = new GameScreen(); // extends AbstractScreen
        screen1.setNextScreen(screen2);
        screen2.setBackScreen(screen1);
    }

    @Override
    public void render() {
        AbstractScreen currentScreen = (AbstractScreen) getScreen();

        if (currentScreen.goBack) {
            setScreen(currentScreen.getBackScreen());
        } else if (currentScreen.goToNextScreen) {
            setScreen(currentScreen.getNextScreen());
        }
    }
Run Code Online (Sandbox Code Playgroud)

在实践中,我实际上不会实例化方法中的所有屏幕,create而是根据需要具有创建/处理屏幕的方法,但是,上面是一般想法的简化.

然后,各个屏幕负责根据需要设置goBackgoToNextScreen标记.