新手需要你的建议,亲切的陌生人。
我有一些问题,即使在谷歌搜索后也无法解决。
我的游戏中有2个阶段,每个阶段都有一个按住按钮的表: 第一个存储带有游戏按钮的表:向上/向下移动并暂停 第二个存储表示暂停菜单的表。
如果点击“暂停”(游戏暂停),我想绘制现在可以处理输入的第二阶段。
我初步确定了两个阶段:
public void create(){
...
mainStage = new Stage(viewport,batch);
menuStage = new Stage(viewport,batch);
Gdx.input.setInputProcessor(mainStage);
...
暂停Button有一个Listener,它将(枚举)STATE设置为PAUSE (对于暂停菜单中的“恢复”按钮,将状态设置为RUNNING)
pause.addListener(new ChangeListener() {
@Override
public void changed(ChangeEvent event, Actor actor) {
thisState = STATE.PAUSE;
Gdx.input.setInputProzessor(menuStage);
}
});
然后在渲染方法
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按钮出现,但不可点击。 我注意到的是,如果我点击屏幕中间,游戏就会停止。然而,“暂停”按钮的监听器显然甚至没有对此做出反应,因为控制台上没有通知,游戏暂停,也没有点击按钮。
我的开始屏幕仅使用一个舞台,并且可以使用相同的设置完美地工作。
我认为这些遗嘱可能是:
非常感谢帮助!谢谢。
sry for my bad english ..和我的格式化(这是我的第一篇帖子)
答案 0 :(得分:0)
通过你的代码,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);
[...]
}