我目前正在使用正交相机。在我深入游戏之前,我想先修复屏幕尺寸。目前,我将屏幕尺寸设置为 800 x 480。这在其他设备和屏幕尺寸上是否适用?现在我只有启动画面和游戏画面。我必须添加哪些代码行才能实现此目的。
最佳答案
在你的相机上设置一个静态宽度是完全可以的,因为它给你的游戏一个单一的固定尺寸,你可以可靠地使用它。这是可行的,因为相机用于定义世界坐标,而世界坐标并不总是与屏幕坐标一一对应。
您的问题来自固定的相机高度。固定高度会导致屏幕根据设备屏幕的纵横比变高或变短。如果您想考虑不同的宽高比,您需要将相机高度(目前为 480)乘以显示比。您可以通过将高度除以宽度除以高度来获得屏幕比例。这看起来像:
float width = Gdx.graphics.getWidth();
float height = Gdx.graphics.getHeight();
OrthographicCamera camera = new OrthographicCamera(800, 480 * (height / width));
正如 BennX 在评论中指出的那样,LibGDX 引入了视口(viewport),它允许您以不同的方式执行与上述相同的操作。要实现与我上面概述的相同效果,仅使用视口(viewport),您可以使用 ExtendViewport
。这样做的目的是在一个方向上保持世界大小,同时在另一个方向上拉伸(stretch)它。所以世界将首先放大以填满屏幕,然后在保持宽高比的情况下扩展较短的维度。要创建这种类型的视口(viewport),它看起来像这样:
OrthographicCamera camera = new OrthographicCamera(800, 480);
ExtendViewport viewport = new ExtendViewport(800, 480, camera);
上面的视口(viewport)的最小宽度为 800,最小高度为 480。应用视口(viewport)后,其中一个值将相同,另一个将根据屏幕的纵横比发生变化。更窄的屏幕将有更多的垂直空间,而更宽的屏幕将有更多的水平空间。有关视口(viewport)的更多信息,请访问 LibGDX 维基页面 here .
关于android - LibGDX - 如何让我的游戏在所有屏幕分辨率下运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25588099/