Jeśli istnieje jakiś sposób zarządzania przyciskiem Wstecz w Libgdx?Jak zarządzać przyciskiem Wstecz przy użyciu wielu ekranów w Libgdx?
na przykład w AndEngine I wprowadziły to tak:
@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;
...
...
}
}
}
nie mam pojęcia jak to zrobić tutaj, ponieważ ApplicationListener ma tworzyć tylko, show, czynią ... tryed to :
if (Gdx.input.isButtonPressed(Keys.BACK)){
new ScreenChangeTask(MyScreen.SPLASH);
}
ale nadal zamyka moją aplikację.
FYI: Mam class Controller extends Game
i używam public void setScreen (Screen screen)
do przełączania się między ekranami.
alternatywa do ustawiania go na false, to po prostu zadzwonić Gdx.app .exit(), kiedy rzeczywiście chcesz zezwolić użytkownikowi na zamknięcie. –
Dzięki, było pomocne. Ale mam jeszcze jedno pytanie: 'if (Gdx.input.isKeyPressed (Keys.BACK)) { \t System.out.println (" Back key został wciśnięty "); \t nowy zegar(). (Nowy ekran ScreenChangeTask (MyScreen.SOME_SCREEN), 1); \t \t} '- Umieszczam ten kod w metodzie renderowania. A kiedy naciśniesz przycisk Wstecz, przełącza się on z powrotem do innego ekranu, a na tym ekranie przełącza się z powrotem na inny, ponieważ ten spokój kodu jest wyzwalany kilka razy, aż usunę palec. Jak mogę rozwiązać ten problem? – Aleksandrs
Wszystko, co musisz zrobić, to użyć zmiennej boolean w instrukcji if, a następnie ustawić wartość boolean na false, jeśli klawisz zostanie naciśnięty, aby kolejna pętla gry go nie wprowadziła. – Jyro117