libgdx - ui SpriteBatch 需要根据 window 大小进行缩放?
libgdx - ui SpriteBatch needs to scale based on window size?
我目前正在使用 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);
}
}
上面的临时变量会将桌面应用程序 window 的大小缩放某个数字(在本例中为 3)。在我的 render() 循环中,我有一个未被相机修改的批处理 (floatingBatch = new SpriteBatch();
),用于绘制我的 'ui' 元素:
floatingBatch.begin();
//bunch of floatingBatch.draw()'s...
floatingBatch.end();
不过,我注意到 floatingBatch 中的坐标不随我的屏幕尺寸缩放。例如,如果 temp above = 1,则浮动批处理中的点 (200,200) 将在屏幕外,但如果 temp = 3,则将在屏幕上。这是不对的,我希望 floatingBatch 随 window 缩放。如果我从 temp = 1 开始,然后手动将 window 拖到它的起始大小的大约 3 倍,显然一切都是我想要的。
我尝试过的一件事是上面的 temp = 1
,然后在我的 create() 函数中执行此操作:
Gdx.graphics.setDisplayMode(160*3, 144*3, false);
上面的很好,而且可以工作,但在视觉上看起来有点尴尬(屏幕最初为 144x160,然后调整为该尺寸的 3 倍。)是否有更好的方法来完成我所描述的内容?我可以以某种方式更改 floatingBatch 以使其随 window 缩放吗?
您可以使用
Gdx.graphics.getWidth();
和
Gdx.graphics.getHeight();
获取设备的像素数然后调整你的scene2d
请参阅 the api 以获得更多帮助
我目前正在使用 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);
}
}
上面的临时变量会将桌面应用程序 window 的大小缩放某个数字(在本例中为 3)。在我的 render() 循环中,我有一个未被相机修改的批处理 (floatingBatch = new SpriteBatch();
),用于绘制我的 'ui' 元素:
floatingBatch.begin();
//bunch of floatingBatch.draw()'s...
floatingBatch.end();
不过,我注意到 floatingBatch 中的坐标不随我的屏幕尺寸缩放。例如,如果 temp above = 1,则浮动批处理中的点 (200,200) 将在屏幕外,但如果 temp = 3,则将在屏幕上。这是不对的,我希望 floatingBatch 随 window 缩放。如果我从 temp = 1 开始,然后手动将 window 拖到它的起始大小的大约 3 倍,显然一切都是我想要的。
我尝试过的一件事是上面的 temp = 1
,然后在我的 create() 函数中执行此操作:
Gdx.graphics.setDisplayMode(160*3, 144*3, false);
上面的很好,而且可以工作,但在视觉上看起来有点尴尬(屏幕最初为 144x160,然后调整为该尺寸的 3 倍。)是否有更好的方法来完成我所描述的内容?我可以以某种方式更改 floatingBatch 以使其随 window 缩放吗?
您可以使用
Gdx.graphics.getWidth();
和
Gdx.graphics.getHeight();
获取设备的像素数然后调整你的scene2d
请参阅 the api 以获得更多帮助