【发布时间】:2015-12-02 09:37:25
【问题描述】:
我有一个简单的三个屏幕结构:开始、菜单和游戏。 当用户在游戏中并按下返回按钮时,返回到菜单屏幕,再次按下返回,进入开始屏幕。如下图所示。
问题是当我按下游戏屏幕上的后退按钮时,它会直接进入开始屏幕。应该进入菜单屏幕。
这样做的正确方法是什么?
类:
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;
}
【问题讨论】: