Java libgdx输入多路复用器不使用对话框

Java libgdx输入多路复用器不使用对话框,java,libgdx,Java,Libgdx,我在一个libgdx项目上工作。在我的游戏屏幕上,我有3个类: 一个用于游戏渲染 一个用于按钮和箭头侦听器 最后一个对话。此对话框显示在游戏结束时 我需要在按钮、箭头和对话框上安装一个输入处理器。button类管理按钮和箭头。下面是我的button类的摘要: public class ButtonRenderer implements InputProcessor { public Stage stage; public ButtonRenderer(){

我在一个libgdx项目上工作。在我的游戏屏幕上,我有3个类:

  • 一个用于游戏渲染

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

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

我需要在按钮、箭头和对话框上安装一个输入处理器。button类管理按钮和箭头。下面是我的button类的摘要:

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。为此,在我的游戏屏幕中,我有:

@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);
}
但它不起作用,箭头和按钮不可点击,对话框只可点击一次

编辑:当我注释行
对话框时,显示(stage),一切正常!怎么可能

我显示对话框并保持多路复用器可用???

输入的布尔返回值用于指示输入事件是否由该处理程序处理。即使没有为任何输入处理程序处理事件,您是否仍返回true?是的,我始终返回TrueDod您在ButtonRenderer类中写入Gdx.input.setInputProcessor(somearrows)了吗?否,因为如果这样做,它将删除所有其他处理器。但是箭头的侦听器是buttonRenderer,我将其添加到多路复用器中:
multiplexer.addProcessor(buttonRenderer)我希望这将有助于解决您的问题。输入的布尔返回值用于指示此处理程序是否处理了输入事件。即使没有为任何输入处理程序处理事件,您是否仍返回true?是的,我始终返回TrueDod您在ButtonRenderer类中写入Gdx.input.setInputProcessor(somearrows)了吗?否,因为如果这样做,它将删除所有其他处理器。但是箭头的侦听器是buttonRenderer,我将其添加到多路复用器中:
multiplexer.addProcessor(buttonRenderer)我希望这将有助于解决您的问题。