Java libgdx输入多路复用器不使用对话框
我在一个libgdx项目上工作。在我的游戏屏幕上,我有3个类:Java libgdx输入多路复用器不使用对话框,java,libgdx,Java,Libgdx,我在一个libgdx项目上工作。在我的游戏屏幕上,我有3个类: 一个用于游戏渲染 一个用于按钮和箭头侦听器 最后一个对话。此对话框显示在游戏结束时 我需要在按钮、箭头和对话框上安装一个输入处理器。button类管理按钮和箭头。下面是我的button类的摘要: public class ButtonRenderer implements InputProcessor { public Stage stage; public ButtonRenderer(){
- 一个用于游戏渲染
- 一个用于按钮和箭头侦听器
- 最后一个对话。此对话框显示在游戏结束时
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)代码>我希望这将有助于解决您的问题。