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
7
A
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.