gpt4 book ai didi

java - libgdx - ui SpriteBatch 需要根据窗口大小进行缩放?

转载 作者:行者123 更新时间:2023-12-01 11:40:28 25 4
gpt4 key购买 nike

我目前使用的是 libgdx 1.5.4。通常要修改屏幕尺寸,我这样做了:

public class DesktopLauncher {
public static void main (String[] arg) {
LwjglApplicationConfiguration config = new LwjglApplicationConfiguration();

int temp = 3; //scale viewport
config.width = temp *160;
config.height = temp *144;

new LwjglApplication(new MyGame(), config);
}
}

上面的临时变量会将桌面应用程序窗口大小缩放某个数字(在本例中为 3)。在我的 render() 循环中,我有一个未由相机修改的批处理 (floatingBatch = new SpriteBatch();),用于绘制我的“ui”元素:

      floatingBatch.begin();
//bunch of floatingBatch.draw()'s...
floatingBatch.end();

不过,我注意到,floatingBatch 中的坐标不随我的屏幕尺寸缩放。例如,如果上面的 temp = 1, float 批处理中的点 (200,200) 将在屏幕外,但如果 temp = 3,则 float 批处理中的点 (200,200) 将在屏幕上。这是不对的,我希望 floatBatch 随窗口缩放。如果我从 temp = 1 开始,然后手动将窗口拖到起始大小的 3 倍左右,显然一切都如我所愿。

我尝试过的一件事是使用上面的 temp = 1,然后在我的 create() 函数中执行此操作:

Gdx.graphics.setDisplayMode(160*3, 144*3, false);

上面的方法很好,也可以工作,但它在视觉上看起来有点尴尬(屏幕首先以 144x160 开始,然后调整为该尺寸的 3 倍。)是否有更好的方法来完成我所描述的操作?我可以以某种方式更改 floatBatch 以便它随窗口缩放吗?

最佳答案

您可以使用

Gdx.graphics.getWidth();

Gdx.graphics.getHeight();

获取设备的像素数,然后调整 scene2d

引用the api如需更多帮助

关于java - libgdx - ui SpriteBatch 需要根据窗口大小进行缩放?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29569085/

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