我正在努力实施一个有两个阶段的游戏画面。 目的是左边区域说50%是游戏区域,50%是UI区域的正确区域。
到目前为止,我有这个:
class GameScreen implements Screen {
Stage playStage;
Stage uiStage;
private GameScreen() {
// this is a 1024 * 768 resolution game
Viewport playVP = new FitViewPort(512, 768, new OrthographicCamera());
playStage = new Stage(playVP);
playVP.setScreenBounds(0,0,512,768);
Viewport uiVP = new FitViewPort(512, 768, new OrthographicCamera());
uiStage = new Stage(uiVP);
uiVP.setScreenBounds(512,0,512,768); // offset the x
}
public void render(float delta) {
Gdx.gl.glClearColor(1, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
playStage.act();
uiStage.act();
playrenderer.setView(playCamera);
playrenderer.render();
uiRenderer.setView(uiCamera);
uiRenderer.render();
playStage.draw();
uiStage.draw();
}
}
uiRenderer似乎叠加在游戏区域的顶部,而不是固定在右侧。我做错了什么?
答案 0 :(得分:1)
您需要在设置边界后使用apply方法。
vp.apply(boolean centercamera)
或只是
vp.apply()
因为你不想以相机为中心。