【发布时间】:2016-06-11 20:40:55
【问题描述】:
在我目前正在开发的 LibGDX 游戏中,我遇到了关于视口的问题。我正在尝试创建两个视口——一个包含整个屏幕,包括控件,另一个在第一个中间保存游戏的视觉效果。 This is what I mean.
但是,我在使用这些视口时遇到了问题。首先,在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 的比例。感谢您的帮助!
【问题讨论】:
标签: opengl camera libgdx rendering viewport