我有三个实现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);
...
}
Run Code Online (Sandbox Code Playgroud)
它将屏幕设置为显示级别选择,并且在LevelSelectScreens的渲染功能中我有:
@Override
public void render(float delta)
{
if (Gdx.input.isKeyPressed(Keys.BACK))
new MainMenuScreen(game);
Update();
Draw();
} //end render
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是,当我按回GameScreen时,LevelSelectScreen闪烁到屏幕一会儿,然后直接回到MainMenuScreen.
我想我可以设置一些变量来检查在屏幕初始化时是否已经按下了Back,但是如果LibGdx中已经包含一些"魔法"函数或只是代码结构也可以解决这个问题,这只是好奇.