LibGDX:如何在FitViewport的黑条区域绘制?

时间:2015-12-06 17:18:19

标签: java libgdx viewport aspect-ratio

我得到了一个虚拟宽度和虚拟高度的FitViewport。当屏幕获得另一个宽高比而不是我的虚拟分辨率时,会添加黑条。我想在这些信箱内画一些东西。

我尝试这样做,但只绘制了我的虚拟分辨率“内部”的对象,“外部”的对象才不可见:

viewport = new FitViewport(VIRTUAL_WIDTH, VIRTUAL_HEIGHT, cam);
viewport.apply();

batch.setProjectionMatrix(cam.combined);

batch.begin();
batch.draw(texture, viewport.getRightGutterX(), 0);
batch.end();

如何在信箱内画画?

1 个答案:

答案 0 :(得分:3)

您需要第二个视口,可能是与FitViewport具有相同虚拟尺寸的ExtendViewport。

//create:
fitViewport = new FitViewport(VIRTUAL_WIDTH, VIRTUAL_HEIGHT);
extendViewport = new ExtendViewport(VIRTUAL_WIDTH, VIRTUAL_HEIGHT);

//resize:
fitViewport.update(width, height);
extendViewport.update(width, height);

//render:

fitViewport.apply();
batch.setProjectionMatrix(fitViewport.getCamera().combined);
batch.begin();
//draw game
batch.end();

extendViewport.apply();
batch.setProjectionMatrix(extendViewport.getCamera().combined);
batch.begin();
//draw stuff in border
batch.end();

如果你想确定边框内容与你的游戏没有重叠,你可以交换上面的绘制顺序。

或者您可以使用ExtendViewport开始使用所有内容。