Fitviewport错误的相机定位

时间:2015-08-08 02:35:26

标签: java android camera libgdx viewport

我在手机上开发了一款1080x1920(人像)分辨率的游戏。我根据它设置了我的fitviewport。它在我的手机上看起来像这样:

my phone

但是在任何其他手机或桌面相机上都有错误的定位。在其他设备上看起来像这样:

other phone

之前我曾在其他项目中使用过fitviewport,但从未遇到过这个问题。可能是因为肖像模式?

修改 相关代码在这里:

//in create
camera = new Orthographiccamera();
camera.setToOrtho(false, Gdx.graphics.getWidth(), Gdx.graphics.getHeigth());

viewport = new FitViewport(1080,1920,camera);

//in resize
viewport.update(width,height);

//before starting batch
batch.setProjectionMatrix(camera.combined);

1 个答案:

答案 0 :(得分:1)

您的代码中有两个相互矛盾的陈述:camera.setToOrtho(false, Gdx.graphics.getWidth(), Gdx.graphics.getHeigth())。这会将相机的视口大小设置为显示大小,然后将相机居中。

另一方面,您希望使用固定大小为1080x1920的FitViewport

如果您的屏幕尺寸正好是1080x1920,那么没有问题,因为中心将是相同的。如果屏幕尺寸与FitViewport中使用的屏幕尺寸不同,那么setToOrtho()会将相机的中心设置为不是1080x1920中心的位置,而是{&#39}。你注意到偏移的原因。

使用viewport.update(width, height, true)将更正此问题。最后一个参数将正确居中相机并覆盖setToOrtho()中发生的事情。

让视口管理您的相机并移除camera.setToOrth()

的来电