一位新手再次需要您的咨询,亲切的陌生人。
我有一些问题,即使在对其进行了搜索之后也无法解决。
我的游戏有2个阶段,每个阶段都有一个按住按钮的表格:第一个阶段存储带有游戏内按钮的表格:向上/向下移动并暂停,第二个阶段存储代表暂停菜单的表格。
如果单击“暂停”(游戏暂停并且),我想绘制第二个可以处理输入的阶段。
我初始化了2个阶段:
public void create(){
...
mainStage = new Stage(viewport,batch);
menuStage = new Stage(viewport,batch);
Gdx.input.setInputProcessor(mainStage);
...
暂停按钮获得了一个侦听器,该监听器将(枚举)状态设置为暂停(与暂停菜单中的“恢复”按钮相同,将状态设置为“正在运行”)
pause.addListener(new ChangeListener() {
@Override
public void changed(ChangeEvent event, Actor actor) {
thisState = STATE.PAUSE;
Gdx.input.setInputProzessor(menuStage);
}
});
然后在render方法中
switch (gameState) {
case RUNNING:
deltaTime = Gdx.graphics.getDeltaTime();
stateTime += deltaTime; // for the animations
Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
batch.setProjectionMatrix(camera.combined);
update(deltaTime);
batch.begin();
... draws the characters
batch.end();
mainStage.act(deltaTime);
mainStage.draw();
break;
case PAUSE:
Gdx.gl.glClearColor(0, 0, 0, 0.6f); I want the background to become slightly darker.
Gdx.app.log("Game State","Game is PAUSED");
menuStage.act(deltaTime);
menuStage.draw();
}
如果我启动mainStage按钮,则会出现,但不能单击。我注意到的是,如果我单击屏幕中间的按钮,游戏将停止。但是,“暂停”按钮的侦听器显然不会对此做出反应,因为控制台上没有通知,游戏已暂停,也没有单击按钮。
我的开始屏幕仅使用一个舞台,并且可以在相同的设置下完美运行。
我认为这些共鸣可能是:
非常感谢您的帮助!谢谢你。
抱歉我的英语不好 ..和我的格式(这是我的第一篇文章)
根据您的代码,gdx仅处理mainStage的输入,您可以在显示菜单时交换输入处理器,或使用如下所示的输入多路复用器:
public void create(){
[...]
mainStage = new Stage(viewport,batch);
menuStage = new Stage(viewport,batch);
InputMultiplexer multiplexer = new InputMultiplexer();
multiplexer.addProcessor(mainStage);
multiplexer.addProcessor(menuStage);
Gdx.input.setInputProcessor(multiplexer);
[...]
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句