Я инициализировал 2 этапа:
Код: Выделить всё
public void create(){
...
mainStage = new Stage(viewport,batch);
menuStage = new Stage(viewport,batch);
Gdx.input.setInputProcessor(mainStage);
...
(то же самое для кнопки «возобновить» в меню паузы, которая устанавливает состояние 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();
}
Мой старт Screen использует только одну сцену и отлично работает с той же настройкой.
Как я думаю, причины могут быть:
- Я неправильно использовал setInputProcessor.
- Я использовал Область просмотра ложно (и изменяется размер)
- Мне нужно каким-то образом позволить первому этапу исчезнуть, прежде чем рисовать новый этап
Подробнее здесь: https://stackoverflow.com/questions/404 ... %b4t-react