joh*_*566 2 scaling resolution screen libgdx
快问,
我正在使用libgdx进行游戏并且遇到了障碍.我正在尝试扩展我的资产,我正在使用它Gdx.graphics.getDensity()来获取密度,然后使用它作为乘数设置我的资产大小.我遇到的问题是,在2560x1600分辨率为2.0 的平板电脑上,而nexus 5仿真器1080x1920的密度为2.652 ...平板电脑的密度如何小于小型手机?
如果基于Android应用程序屏幕大小的密度不可靠,我应该使用什么来获得缩放倍数?
要回答你的第一个问题,这是一个硬件问题.即使分辨率较小,Nexus 5的PPI(每英寸像素数)比例也可能高于第二个.
至于你的第二个问题,我建议一个替代方案Gdx.graphics.getDensity():如果你试图确保你的资产相对于屏幕的大小相同(即2560x1600显示器上的80x80资产将是1280x800显示器的一半大小) ,然后我想你想让你的资产保持相同的大小,改变相机的大小.
当您在libGDX(或任何游戏引擎)中创建游戏时,您需要记住游戏中三组尺寸/坐标之间的差异:
希望这是有道理的.让我们来看看其含义:
假设我的游戏世界中有一个800x600 GU(游戏单元)资产为0,0.我的视口大小为2560x1600,我的相机也缩放到2560x1600.我的800x600 GU对象将在屏幕上呈现800x600像素图像.
现在假设我想以相同的比例将我的游戏移植到其他屏幕尺寸(现在只是为了保持简单).我仍然有2560x1600视口大小,但我将我的相机更改为8x5 GU,我的游戏对象更改为2.5x1.875 GU.这些尺寸将明确设置 - 与视口大小无关.这使得1 GU = 320px.最终结果是我的游戏对象仍然会在屏幕上呈现800x600像素的图像.
现在让我们看看这对1280x800px分辨率的效果如何:我的视口是1280x800像素,但我的相机保持在8x5 GU,我的游戏对象保持在2.5x1.875 GU.由于相机的尺寸,1 GU = 160px,这意味着我的游戏对象渲染为400x300,这意味着它在较小的屏幕上按比例相同.
希望没有图片就没有意义.当您开始使用具有不同宽高比的屏幕时(即,您从8x5屏幕变为3x2屏幕),您需要一些额外的逻辑来保持视口的宽高比与您的相机相同(否则事情会全部拉伸).幸运的是,libGDX提供了一些将为您执行此操作的视口.
您可以在此处找到libGDX社区的外部教程,其中详细介绍了此问题.
| 归档时间: |
|
| 查看次数: |
1685 次 |
| 最近记录: |