0
我有一個簡單的三個屏幕結構:開始,菜單和遊戲。 當用戶在遊戲中並按下後退按鈕時,返回到菜單屏幕,然後再次按下,進入開始屏幕。像下面的圖片一樣。Libgdx - 在Android中的屏幕之間導航
的問題是直行到開始屏幕,當我按下游戲畫面後退按鈕。應該去菜單屏幕。
這是正確的方法嗎?
類:
public class GameScreen extends ScreenAdapter implements InputProcessor, Screen, GestureListener
public class MenuScreen extends ScreenAdapter implements InputProcessor
public class StartScreen extends ScreenAdapter implements InputProcessor
在這兩個類別:
Show(){
Gdx.input.setCatchBackKey(true);
}
在GameScreen類:
@Override
public boolean keyDown(int keycode) {
if(keycode == Keys.BACK){
bb.setScreen(new MenuScreen(bb,game,adsController,actionResolver));
}
return false;
}
在菜單屏幕類:
render() {
if (Gdx.input.isKeyJustPressed(Keys.BACK)){
bb.setScreen(new StartScreen(bb,game,adsController,actionResolver));
}
}
注意:下面的代碼在GameScreen上可以正常工作,但在MenuScreen或StartScreeen上,當按下後退按鈕時,什麼都不會發生。爲什麼?
@Override
public boolean keyDown(int keycode) {
if(keycode == Keys.BACK){
bb.setScreen(new MenuScreen(bb,game,adsController,actionResolver));
}
return false;
}
而關於第一個問題(問題是當我按下游戲屏幕上的後退按鈕時,會直接進入開始屏幕。應該去菜單屏幕)任何建議?或者這樣解決了這兩個問題? – user3771516
嘗試使用onkeyup代替按鍵,我懷疑它是一種通過即時調用開始菜單的問題,因爲後退按鈕仍然關閉。 –
GameScreen Class可以與inputmultiplexer配合使用,但是StartScreen和MenuScreen不會,keyUp或keyDown什麼也不做。渲染方法只有Gdx.input.isKeyJustPressed有效。任何想法? – user3771516