我一直在 Google 周围搜索有关如何使用 Scene2D 将多个屏幕与 LibGDX 结合使用的教程。到目前为止,这是我在场景处理类(class)中所拥有的,但我不知道从这里去哪里。我知道我必须对 MainMenu.java
的构造函数做一些事情,但我不知道它是什么。
到目前为止我得到了什么:
public class ScreenHandler extends Game{
public MainMenu Main;
@Override
public void create() {
Main= new MainMenu();
setScreen(Main);
}
}
最佳答案
我不太喜欢将我的屏幕类与我的游戏类耦合。我使用的方法是我所有游戏屏幕的抽象类,它有一个标志和功能来指示正在请求“下一个屏幕”。然后,我的 Game 类的 render
方法可以检查该标志并相应地呈现新屏幕。
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());
}
}
在实践中,我不会在 create
方法中实际实例化所有屏幕,而是根据需要创建/处理屏幕的方法,但是,以上是对一般想法的简化。
然后各个屏幕负责根据需要设置 goBack
和 goToNextScreen
标志。
关于java - 如何在 Scene2D libGDX 中更改屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18624347/