我目前正在使用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);
}
}
上面的temp var会将桌面应用程序窗口大小缩放某个数字(在本例中为3)。在我的render()循环中,我有一个未被相机修改的批处理(floatingBatch = new SpriteBatch();
)来绘制我的'ui'元素:
floatingBatch.begin();
//bunch of floatingBatch.draw()'s...
floatingBatch.end();
我注意到,floatingBatch中的坐标不随我的屏幕尺寸而缩放。例如,如果temp高于= 1,则浮动批次中的点(200,200)将在屏幕外,但如果temp = 3,则将在屏幕上。这是不对的,我希望floatingBatch随窗口缩放。如果我从temp = 1开始,只需手动将窗口拖出大约3倍它的起始大小,一切都是我想要的。
我尝试过的一件事是上面有temp = 1
,然后在我的create()函数中执行此操作:
Gdx.graphics.setDisplayMode(160*3, 144*3, false);
以上情况很好,并且有效,但在视觉上看起来有点尴尬(屏幕首先以144x160开始,然后调整为3倍大小。)有没有更好的方法来做我所描述的?我可以以某种方式更改floatingBatch,以便它随窗口缩放吗?
答案 0 :(得分:1)