我有三个实现 LibGdx Screen 类的类:
MainMenuScreen、LevelSelectScreen、GameScreen
现在我将 MainMenuScreen 的 setCatchBackKey 设置为 false,所以游戏只会在按下后退出。
LevelSelectScreen 和 GameScreen 已将 setCatchBackKey 设置为 true。
在 GameScreen 的渲染函数中,我有:
@Override
public void render(float delta)
{
gameTime = delta;
if (Gdx.input.isKeyPressed(Keys.BACK))
new LevelSelectScreen(game);
...
}
它将屏幕设置为显示级别选择,并且在 LevelSelectScreens 的渲染功能中我有:
@Override
public void render(float delta)
{
if (Gdx.input.isKeyPressed(Keys.BACK))
new MainMenuScreen(game);
Update();
Draw();
} //end render
我遇到的问题是,当我按回 GameScreen 时,LevelSelectScreen 会在屏幕上闪烁片刻,然后直接回到 MainMenuScreen。
我想我可以设置一些变量来检查屏幕初始化时是否已经按下 Back,但只是好奇 LibGdx 中是否已经包含一些“神奇”功能,或者只是代码结构也可以解决这个问题。