LibGDX中的分屏


问题内容

这个问题简短而简单。如何在LibGDX中创建分屏效果。如果我创建了两个摄像机,那么所要做的就是在某处绘制一个摄像机,然后绘制下一个摄像机,覆盖前一个摄像机。然后,我考虑使用多个屏幕,但看起来不起作用,因为它仅支持调整大小,而不支持在窗口中重新定位。我也在使用Box2DDebugRenderer和ShapeRenderer,因此它也需要在拆分屏幕的限制下将其剪切掉。LibGDX网站上似乎没有任何文档。


问题答案:

在#libgdx IRC上询问了一下之后,该功能Gdx.gl.glViewport( int x, int y, int width, int height )向我指出。因此,您只需要一台摄像机。只需在屏幕的左侧设置视口,然后执行绘制命令,然后在屏幕的右侧设置视口,然后再次绘制即可。像这样:

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

您只需要设置摄像头,即可将其定位并变换为所需的屏幕,而不是整个屏幕。您也可以使用第二台相机。