如果在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;
...
...
}
}
}
我不知道怎麼在這裏做,因爲ApplicationListener只創造,展示,渲染...... 我tryed這:
if (Gdx.input.isButtonPressed(Keys.BACK)){
new ScreenChangeTask(MyScreen.SPLASH);
}
但它仍然關閉我的應用程序。
供參考:我有class Controller extends Game
和我使用public void setScreen (Screen screen)
在屏幕之間切換。
的替代方法將它設置爲false是剛剛打電話Gdx.app .exit()當你真的想讓用戶退出。 – 2013-03-14 21:36:54
謝謝,這很有幫助。但我還有一個問題:'if(Gdx.input.isKeyPressed(Keys.BACK)){System.out.println(「Back key was pressed」); (),新的ScreenChangeTask(MyScreen.SOME_SCREEN),1); \t \t}' - 我把這段代碼放在渲染方法中。當我按下Back按鈕時,它會切換回另一個屏幕,然後在該屏幕中切換回另一個屏幕,因爲代碼的和平性會觸發多次,直到我移開手指。我該如何解決這個問題? – Aleksandrs 2013-03-15 09:49:46
您只需在if語句中使用布爾變量,然後將布爾值設置爲false,如果按下該鍵,則下一個遊戲循環不會輸入它。 – Jyro117 2013-03-15 17:28:27