2013-07-27 23 views
7

To pytanie jest krótkie i proste. Jak utworzyć efekt podziału ekranu w LibGDX. Jeśli utworzę dwie kamery, wszystko, co zrobi, to narysuj gdzieś, a następnie narysuj następną, zastępując poprzednią kamerę. Potem pomyślałem, żeby użyć wielu ekranów, ale to nie wygląda na to, że zadziała, ponieważ obsługuje tylko zmianę rozmiaru, a nie przemieszczanie się w oknie. Używam również Box2DDebugRenderer, a także ShapeRenderer, więc musiałby również je wyłączyć przy limicie podzielonego ekranu. Wydaje się, że nie ma żadnej dokumentacji na stronie LibGDX.Podział ekranu w LibGDX

Odpowiedz

18

Po krótkim pytaniu na IRC#libgdx zwrócono mi uwagę na funkcję Gdx.gl.glViewport(int x, int y, int width, int height). Potrzebujesz tylko jednej kamery. Wystarczy ustawić rzutnię po lewej stronie ekranu, a następnie wykonać polecenia rysowania, a następnie ustawić rzutnię po prawej stronie ekranu i narysować ponownie. tak:

@Override 
public void render(float delta) 
{ 
    /*Wipe Screen to black*/ 
    Gdx.gl.glClearColor(Color.BLACK); 
    Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT); 

    /*Left Half*/ 
    Gdx.gl.glViewport(0,0,Gdx.graphics.getWidth()/2,Gdx.graphics.getHeight()); 
    //Set up camera with viewport in mind 
    draw(delta); 

    /*Right Half*/ 
    Gdx.gl.glViewport(Gdx.graphics.getWidth()/2,0,Gdx.graphics.getWidth()/2,Gdx.graphics.getHeight()); 
    //Set up camera again with other viewport in mind 
    draw(delta); 
} 

Wystarczy ustawić aparat tak, że jest on umieszczony i przekształcony na ograniczoną ekranie tak, jak chcesz, a nie całego ekranu. Można również użyć drugiej kamery.