我正在实施2D平台游戏。当玩家摔倒时,它将在屏幕上方显示游戏。但是在单击屏幕时,它应该直接转到菜单屏幕,但是没有发生。而是,屏幕上的文字游戏会扩展。 这是我的游戏屏幕代码。在handleInput中,我编写了将屏幕上的游戏状态更改为菜单屏幕的代码
答案 0 :(得分:0)
如果您不共享太多代码,那就更好了。发布问题时应删除不相关的代码。大多数问题都是不相关的。您应该分享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())
来更改屏幕。您可能看了第一批教程,并像初次学习LibGDX时一样学习了扩展自定义类(如MenuState)的经历,然后我看到了大多数教程和代码共享,它们使用Game和ScreenAdapter类或Screen接口在屏幕之间导航。
用于游戏的多屏幕游戏的基本设置
设置ENUM或int状态,例如STATE = RUNNING,PAUSED,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
的{{1}}类和Screen
接口,以了解它们的工作原理。