2016-08-14 13 views
0

2段階のゲーム画面を実装するのに苦労しています。 意図は、左の領域の場合、50%が再生領域、50%がUI領域の右の領域です。プレイエリアが左側にあり、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

センタリングされたビューポートを使用しない場合は、カスタムビューポートサブクラスを作成する必要があります。ビルトインされたものはすべて、中央に位置するものだけをサポートします。 – Tenfour04

答えて

1

set boundsの後にapplyメソッドを使用する必要があります。

vp.apply(boolean centercamera) 

たり、カメラにセンタリングしたくないので、ちょうど

vp.apply() 

+0

これはまさに私が必要としていたものです! tks! – delita

関連する問題