Fitviewport 错误的相机定位
Fitviewport Wrong Camera Positioning
我在 phone 上开发了一款分辨率为 1080x1920(纵向)的游戏。我根据它设置了我的 fitviewport。在我的 phone:
上看起来像这样
但是在任何其他 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);
您的代码中有两个相互矛盾的语句:camera.setToOrtho(false, Gdx.graphics.getWidth(), Gdx.graphics.getHeigth())
。这会将相机的视口大小设置为显示大小,然后将相机居中。
另一方面,您想使用固定尺寸为 1080x1920 的 FitViewport
。
如果您的屏幕尺寸刚好是 1080x1920,那没问题,因为中心是一样的。如果屏幕尺寸与您在 FitViewport
中使用的屏幕尺寸不同,则 setToOrtho()
会将相机的中心设置为不是 1080x1920 中心的位置,这就是您注意到偏移的原因。
使用 viewport.update(width, height, true)
将更正此问题。最后一个参数将使相机正确居中并覆盖 setToOrtho()
.
中发生的事情
让视口管理您的相机并移除 camera.setToOrth()
的调用。
我在 phone 上开发了一款分辨率为 1080x1920(纵向)的游戏。我根据它设置了我的 fitviewport。在我的 phone:
上看起来像这样但是在任何其他 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);
您的代码中有两个相互矛盾的语句:camera.setToOrtho(false, Gdx.graphics.getWidth(), Gdx.graphics.getHeigth())
。这会将相机的视口大小设置为显示大小,然后将相机居中。
另一方面,您想使用固定尺寸为 1080x1920 的 FitViewport
。
如果您的屏幕尺寸刚好是 1080x1920,那没问题,因为中心是一样的。如果屏幕尺寸与您在 FitViewport
中使用的屏幕尺寸不同,则 setToOrtho()
会将相机的中心设置为不是 1080x1920 中心的位置,这就是您注意到偏移的原因。
使用 viewport.update(width, height, true)
将更正此问题。最后一个参数将使相机正确居中并覆盖 setToOrtho()
.
让视口管理您的相机并移除 camera.setToOrth()
的调用。