2016-08-14 4 views
0

Ich habe Probleme mit der Implementierung eines Spielbildschirms mit 2 Stufen. die Absicht ist für den linken Bereich sagen 50% zu spielen Bereich und 50% in den richtigen Bereich für UI Sachen.Spielbildschirm mit Spielbereich auf der linken Seite und UI auf der rechten Seite fixiert

Bisher habe ich dies:

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(); 
    } 
} 

Die uiRenderer Overlay auf dem Spielbereich zu sein scheint, und nicht auf der rechten Seite befestigt gelegen. Was mache ich falsch?

+0

Sie müssen eine benutzerdefinierte Viewport-Unterklasse erstellen, wenn Sie kein zentriertes Ansichtsfenster wünschen. Alle eingebauten unterstützen nur die zentrierte Positionierung. – Tenfour04

Antwort

1

Sie müssen nach festgelegten Grenzen die Methode apply verwenden.

vp.apply(boolean centercamera) 

oder nur

vp.apply() 

da Sie zur Kamera zu zentrieren möchten nicht.

+0

Das ist genau das, was ich brauchte! Tks! – delita

Verwandte Themen