libgdx InputMultiplexer无法使用对话框

时间:2017-10-03 16:14:29

标签: java libgdx

我在libgdx项目上工作。在我的GameScreen上,我有3个课程:

  • 一个用于游戏渲染

  • 一个用于按钮和箭头监听器

  • 和对话框的最后一个。该对话框显示在游戏结束时。

我需要在按钮,箭头和对话框上有一个inputProcessor。按钮类管理按钮和箭头。这是我的按钮类的摘要:

public class ButtonRenderer implements InputProcessor {
      public Stage stage;
      public ButtonRenderer(){
          stage = new Stage();
          stage.addActor(someButtons);
     }

     //inputProcessor
     @Override
     public boolean keyDown(int keycode) {
         //do something
         return true;
     }

}

对于对话框,它是另一个没有实现InputProcessor但有阶段的类:

public class ScoreRenderer{
    public Stage stage;
    public ScoreRenderer(){
        stage = new Stage();
        Dialog dialog = new CustomDialog();
        dialog.show(stage);
    }
}

现在,我想将buttonRenderer.stage,buttonRenderer和scoreRenderer.stage设置为InputProcessor。要做到这一点,在我的GameScreen中我有:

@Override
public void show() {
    buttonRenderer = new ButtonRenderer(game);
    scoreRenderer = new ScoreRenderer(game);

    InputMultiplexer multiplexer = new InputMultiplexer();
    multiplexer.addProcessor(buttonRenderer.stage);
    multiplexer.addProcessor(buttonRenderer);
    multiplexer.addProcessor(scoreRenderer.stage);
    Gdx.input.setInputProcessor(multiplexer);
}

但是它不起作用,箭头和按钮不可克服,对话框只有一次可以通知。

编辑:当我对该行dialog.show(stage);发表评论时,一切正常!怎么能 我显示我的对话框并保持多路复用器可用?

0 个答案:

没有答案