我在手机上开发了一款1080x1920(人像)分辨率的游戏。我根据它设置了我的fitviewport。它在我的手机上看起来像这样:
但是在任何其他手机或桌面相机上都有错误的定位。在其他设备上看起来像这样:
之前我曾在其他项目中使用过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);
答案 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()
。