如何在Libgdx中管理多个屏幕的后退按钮?

Ale*_*drs 6 java back libgdx

如果有一些方法可以管理Libgdx中的后退按钮?

例如在Andengine中我实现了这样:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {  
     if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) {          
          switch (currentScene) {
               case SPLASH:
                   break;
               case MENU:
                   Process.killProcess(Process.myPid());
                   break;
               case WORLDMENU:
                       start(MENU);
                       break;
...
...
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我不知道如何在这里做,因为ApplicationListener只有create,show,render ...我试过这个:

if (Gdx.input.isButtonPressed(Keys.BACK)){
    new ScreenChangeTask(MyScreen.SPLASH);
}
Run Code Online (Sandbox Code Playgroud)

但它仍然关闭我的申请.

仅供参考:我class Controller extends Game和我public void setScreen (Screen screen)用来在屏幕之间切换.

Jyr*_*117 9

为了正确地执行此操作,您需要告诉LibGDX捕获后退键:

Gdx.input.setCatchBackKey(true);
Run Code Online (Sandbox Code Playgroud)

您应该在应用程序的早期某处执行此操作.如果希望用户能够使用后退键,请将其设置为false.

  • 将其设置为false的替代方法是在您确实希望允许用户退出时调用Gdx.app.exit(). (2认同)