Gibt es eine Möglichkeit, wie man die Zurück-Taste in Libgdx verwaltet?Wie man Zurück-Taste mit mehreren Bildschirmen in Libgdx verwalten?
zum Beispiel in AndEngine habe ich dies so umgesetzt:
@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;
...
...
}
}
}
Ich habe keine Ahnung, wie es hier zu tun, weil ApplicationListener nur Show ist erstellen, machen ... ich diese tryed :
if (Gdx.input.isButtonPressed(Keys.BACK)){
new ScreenChangeTask(MyScreen.SPLASH);
}
aber es schließt immer noch meine Anwendung.
FYI: Ich habe class Controller extends Game
und ich verwende public void setScreen (Screen screen)
, um zwischen den Bildschirmen zu wechseln.
Eine Alternative es zu falsch Einstellung ist nur callen Gdx.app .exit(), wenn Sie dem Benutzer eigentlich erlauben möchten, den Vorgang zu beenden. –
Danke, es war hilfreich. Aber ich habe noch eine Frage: 'if (Gdx.input.isKeyPressed (Keys.BACK)) { \t System.out.println (" Zurück-Taste wurde gedrückt "); \t neuer Timer(). Zeitplan (neu ScreenChangeTask (MyScreen.SOME_SCREEN), 1); \t \t} '- Ich habe diesen Code in render-Methode. Und wenn ich die Zurück-Taste drücke, schaltet es auf eine andere zurück, und auf diesem Bildschirm schaltet es zurück zu einer anderen, weil diese Ruhe des Codes mehrere Male ausgelöst wird, bis ich den Finger entferne. Wie kann ich dieses Problem beheben? – Aleksandrs
Alles, was Sie tun müssen, ist eine boolesche Variable in Ihrer if-Anweisung zu verwenden, und dann den booleschen Wert auf false zu setzen, wenn die Taste gedrückt wird, damit die nächste Spielschleife sie nicht eingibt. – Jyro117