在我目前正在開發的LibGDX遊戲中,我遇到了有關視口的問題。我試圖創建兩個視口 - 一個持有整個屏幕,包括控件,另一個持有第一個視圖中的遊戲視覺。 This is what I mean.LibGDX如何使用多個視口/攝像機?
但是,我遇到了使用這些視口的問題。首先,平鋪地圖和在FitViewport
的apply
內呈現的玩家沒有看到(未呈現或不在可見屏幕空間之外),但是我的Rayhandler的光線被看到(並且傳播超過其分配的1:1比)。 Proof。
private OrthographicCamera camera;
Viewport v1;
Viewport v2;
//...
RayHandler devRay;
//...
TiledMap map;
OrthogonalTiledMapRenderer tmr;
Player player;
@Override
public void show() {
camera = new OrthographicCamera(VIRTUAL_WIDTH, VIRTUAL_HEIGHT);
camera.setToOrtho(false,Gdx.graphics.getWidth(),Gdx.graphics.getHeight());
//...
v1 = new ScreenViewport();
v2 = new FitViewport(160, 160, camera);
//...
tmr = new OrthogonalTiledMapRenderer(map);
tmr.setView(camera);
RayHandler.useDiffuseLight(true);
devRay = new RayHandler(world);
}
public void render(float delta) {
Gdx.gl.glClearColor(1,1,1,1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
v1.apply();
//Draw Controls
v2.apply();
//Draw Visuals
tmr.render(); //Tiled Map Renderer
player.render();
devRay.updateAndRender();
//...
}
我猜測我完全錯過了視口的觀點。我想知道是否有任何方法將我的項目中的可播放區域和控制區域分開,以便例如我可以移動FitViewport
的相機,而遊戲視圖不會超過1:1的比例。感謝您的幫助!