支持多屏幕的问题已经被问死了,但我还没有看到关于游戏开发(带有碰撞盒、碰撞检查等)的太多讨论。
目前,由于升级,我的游戏在“兼容模式”下运行,在高端设备上产生的视觉效果非常差。我正在寻找其他人如何使他们的游戏图形在所有屏幕尺寸上看起来都不错的提示和建议。
开发人员是否包含每个资源的 2 个副本(中密度和高密度),或者高密度资源是否只是按比例缩小以用于低密度设备?
您的计算中是否使用了与密度无关的像素?
最佳答案
Do developers include 2 copies of each resource (medium and high densities) or are high density resources simply scaled down for lower density devices?
这是处理事情的一种方法,我已经看到了以下方法:
- 为您要支持的每个分辨率添加位图
- 包括您想要支持的最高分辨率的位图,并缩小其他分辨率。
- 如果您使用图 block 表(即在一个较大的位图中使用多个小位图),您需要注意双线性过滤,即边缘像素与相邻资源的混合。如果发生这种情况,您将在您的 Assets 中获得线条/Artifact 。这里有讨论:http://developer.anscamobile.com/forum/2011/06/03/lines-between-my-tiles关于这个问题。
- 使用您希望支持的最高分辨率的矢量图形。
当使用方法 2 或 3 时,我是这样处理的:
- 创建针对 960 x 1600 屏幕尺寸的 Assets 。
- 480 x 800 - 缩小一半
- 320 x 400 - 缩放三分之一
这为我提供了 future 计算所需的屏幕密度值。
我更喜欢方法3。
我目前正在开发一个等距 2d 游戏引擎,它从磁盘加载 .svg 资源,然后在阶段的“加载”部分将它们“绘制到位图”。这样做可以让我在运行游戏时获得磁盘空间小 (.svg) 和更快的性能(位图)的好处。
工作流程如下:
- 解析关卡所需的游戏 Assets
- 从磁盘加载相关的 .svg 资源
- 将 .svg 内容绘制成位图
- 扔掉加载的.svg
- 对所有 Assets 重复
- 起始级别
Are density-independent pixels used in your calculations?
是的,我是这样使用的:
sprite.x = new_x_position * screen_density;
关于android - 2D opengl 游戏中多屏幕支持的提示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5618563/