Ho tre classi che implementano LibGdx classe Screen:Libgdx: tasto posteriore del telefono continua tra schermo
MainMenuScreen, LevelSelectScreen, GameScreen
Per ora ho setCatchBackKey di MainMenuScreen impostato su false, in modo che il gioco sarà solo uscita sulla stampa posteriore.
LevelSelectScreen e GameScreen hanno impostato setCatchBackKey su true.
Entro i GameScreen della funzione di rendering che ho:
@Override
public void render(float delta)
{
gameTime = delta;
if (Gdx.input.isKeyPressed(Keys.BACK))
new LevelSelectScreen(game);
...
}
che imposta lo schermo per visualizzare il livello di selezione e in LevelSelectScreens della funzione di rendering che ho:
@Override
public void render(float delta)
{
if (Gdx.input.isKeyPressed(Keys.BACK))
new MainMenuScreen(game);
Update();
Draw();
} //end render
Il problema mi imbatto in questo è che quando premo di nuovo sul GameScreen, il LevelSelectScreen lampeggia sullo schermo per un momento e poi torna direttamente a MainMenuScreen.
Ho capito che ho potuto impostare una variabile per verificare se Indietro è già spinto quando lo schermo inizializza, ma ero solo curioso di sapere se v'è una certa funzione di "magico" già incluso all'interno LibGdx o solo la struttura del codice che avrebbe anche aggirare questo problema.
Grazie per il consiglio, vedrò se riesco a fare qualcosa del genere per risolvere il mio problema. – Fleck