如何在 Libgdx 中从游戏结束屏幕切换到菜单屏幕?



我正在实现一个2D平台游戏。当玩家摔倒时,它会在屏幕上显示游戏。但是在单击屏幕时,它应该指向菜单屏幕,但它没有发生。相反,屏幕中的文本游戏会展开。 这是我的游戏屏幕代码。在handleInput中,我编写了将游戏屏幕状态更改为菜单屏幕

的代码

最好不要共享太多代码。发布问题时,应删除不相关的代码。其中大部分是无关紧要的。你应该分享GameState类是如何工作的,你是如何导航的。

您是否正在尝试使用此代码进行导航?

if (MyInput.isPressed()) {
if (MyInput.x < Gdx.graphics.getWidth() / 2) {
gsm.getState(GameStateManager.MENU, level);
}
else
gsm.getState(GameStateManager.MENU, level);
}
}

如果是这样,可能是因为您正在尝试获取状态而不是设置状态。

您为什么不扩展ScreenAdapter并使用setScreen(new MenuScreen())来更改屏幕。您可能看了第一个教程并学习了扩展自定义类(如 MenuState(,就像我第一次开始学习 LibGDX 时所做的那样,然后我看到了大多数教程和代码共享使用游戏和 ScreenAdapter 类或屏幕界面在屏幕之间导航。

游戏的多屏游戏的基本设置

设置 ENUM 或 int 状态,如 STATE=正在运行、暂停、LEVEL_UP GAME_OVER

和 setScreen(( 取决于游戏屏幕的状态。

public MyGame extends Game {
public void create() {
setScreen(new GameScreen(this));
}
}
public GameScreen extends ScreenAdapter {
// You define a state to watch different states of your game
private int state = RUNNING;
private MyGame game;
public GameScreen(MyGame myGame) {
game = myGame;
}

void handleInput() {
if(state==FINISHED) {
game.setScreen(new MenuScreen(game));
}
}
}

这是游戏和屏幕的基本结构。查看Game类和LibGDXScreen界面,了解它们是如何工作的。

最新更新