我在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);
发表评论时,一切正常!怎么能
我显示我的对话框并保持多路复用器可用?