Se c'è un modo come gestire il pulsante Indietro in Libgdx?Come gestire il pulsante Indietro con più schermi in Libgdx?
per esempio nel AndEngine ho implementato questo genere:
@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;
...
...
}
}
}
Non ho idea di come farlo qui, perché ApplicationListener è solo creare, spettacolo, render ... Ho provato questo :
if (Gdx.input.isButtonPressed(Keys.BACK)){
new ScreenChangeTask(MyScreen.SPLASH);
}
ma chiude comunque la mia domanda.
Per il momento: ho class Controller extends Game
e utilizzo public void setScreen (Screen screen)
per passare da una schermata all'altra.
Un'alternativa per l'impostazione su false è quello di chiamare solo Gdx.app .exit() quando in realtà vuoi consentire all'utente di uscire. –
Grazie, è stato utile. Ma ho ancora una domanda: 'if (Gdx.input.isKeyPressed (Keys.BACK)) { \t System.out.println (" È stato premuto il tasto Indietro "); \t nuovo Timer(). Schedule (new ScreenChangeTask (MyScreen.SOME_SCREEN), 1); \t \t} '- Ho messo questo codice nel metodo di rendering. E quando premo il pulsante Indietro, si ritorna a un altro schermo, e in quello schermo torna indietro a un altro, perché questa pace di codice viene attivata più volte fino a rimuovere il dito. Come posso risolvere questo problema? – Aleksandrs
Tutto quello che devi fare è usare una variabile booleana nella tua istruzione if, e quindi impostare il valore booleano su false se il tasto viene premuto in modo che il ciclo di gioco successivo non lo inserisca. – Jyro117