2013-07-27 6 views
7

Diese Frage ist kurz und einfach. Wie erstelle ich einen Split Screen Effekt in LibGDX? Wenn ich zwei Kameras erstelle, wird nur eine gezeichnet und dann die nächste gezeichnet, wobei die vorherige Kamera überschrieben wird. Ich dachte dann, mehrere Bildschirme zu verwenden, aber das sieht nicht so aus, als würde es funktionieren, da es nur die Größenanpassung unterstützt und nicht innerhalb des Fensters verschoben wird. Ich benutze auch Box2DDebugRenderer sowie einen ShapeRenderer, also müsste er diese auch am Split-Screen-Limit abschneiden. Es scheint keine Dokumentation auf der LibGDX-Seite zu geben.Split-Screen in LibGDX

Antwort

18

Nachdem ich ein wenig auf dem IRC#libgdx gefragt habe, wurde mir die Funktion Gdx.gl.glViewport(int x, int y, int width, int height) angezeigt. Du brauchst also nur eine Kamera. Stellen Sie einfach das Ansichtsfenster für die linke Seite des Bildschirms ein, führen Sie dann Ihre Zeichenbefehle aus, richten Sie dann das Ansichtsfenster für die rechte Seite des Bildschirms ein und zeichnen Sie erneut. so wie:

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

Sie müssen nur die Kamera so einstellen, dass es die Art und Weise der begrenzten Bildschirm positioniert und transformiert wird, um Ihnen anstelle des gesamten Bildschirms wollen. Sie könnten möglicherweise auch eine zweite Kamera verwenden.