在我目前正在开发的LibGDX游戏中,我遇到了与Viewports相关的问题。 我试图创建两个视口-一个包含整个屏幕,包括控件,另一个在第一个视口中央包含游戏的可视化内容。这就是我的意思。
然而,使用这些视口时我遇到了一些问题。 首先,放置在
FitViewport
的apply
中的平铺地图和玩家没有被看到(要么没有被渲染,要么超出了可见屏幕空间),但我的Rayhandler的光线被看到了(并且比分配的1:1比率更扩散)。证明。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();
//...
}
我猜我完全错过了Viewport的重点。我想知道是否有任何方法可以在我的项目中分离可播放区域和控制区域,以便例如,我可以移动FitViewport
的相机而不会使游戏视图占用超过1:1的比例。谢谢你的帮助!