Libgdx - 在Android

时间:2015-12-02 09:37:26

标签: android libgdx

我有三个屏幕的简单结构:开始,菜单和游戏。 当用户在游戏中并按下后退按钮时,返回菜单屏幕,然后再次按下,进入开始屏幕。如下图所示。

enter image description here

当我按下游戏画面上的后退按钮时,问题是直接进入开始画面。应该进入菜单屏幕。

这是正确的方法吗?

课程:

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;
  }

1 个答案:

答案 0 :(得分:0)

根据上述评论,您正在致电

Gdx.input.setInputProcessor(stage);

这不会捕捉从

实现的功能
implements InputProcessor

尝试在show()中调用inputmultiplexer,例如:

show()
{
    InputMultiplexer multiplexer = new InputMultiplexer();
    multiplexer.addProcessor(this);
    multiplexer.addProcessor(stage);
    Gdx.input.setInputProcessor(multiplexer);
}