gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 08:06:46 24 4
gpt4 key购买 nike

我有一个 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();

如何在信箱内绘制?

最佳答案

您需要第二个视口(viewport),可能是具有与 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 开始一切。

关于java - LibGDX:如何在 FitViewport 的黑条区域绘制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34120303/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com