2D opengl游戏中多屏幕支持的提示?

时间:2011-04-11 08:17:14

标签: android opengl-es image-scaling

支持多个屏幕的问题已被要求死亡,但我没有看到很多关于游戏开发的讨论(使用命中箱,碰撞检查等)。

目前,我的游戏以“兼容模式”运行,由于升级而在高端设备上产生非常差的视觉效果。我正在寻找其他人所做的提示和建议,以使他们的游戏图形在所有屏幕尺寸上看起来都很好。

开发人员是否包含每个资源的2个副本(中密度和高密度),或者只是按比例缩小为低密度设备的高密度资源?

计算中是否使用了与密度无关的像素?

2 个答案:

答案 0 :(得分:2)

  

开发人员是否包含每个资源的2个副本(中密度和高密度),或者只是按比例缩小为低密度设备的高密度资源?

这是处理事情的一种方法,我已经看到了以下内容:

  1. 包含您要支持的每个分辨率的位图
  2. 包含要支持的最高分辨率的位图,以及其他分辨率的缩小。
  3. 使用矢量图形获得您想要支持的最高分辨率。
  4. 使用方法2.或3.这是我处理它的方式:

    • 创建定位960 x 1600屏幕尺寸的资产。
    • 480 x 800 - 缩小一半
    • 320 x 400 - 比例缩小三分之一

    这为我提供了未来计算所需的屏幕密度值。

    我更喜欢方法3。

    我目前正在开发一个等距2d游戏引擎,它从磁盘加载.svg资产,然后在舞台的“加载”部分“将它们绘制到位图”。这样做我在运行游戏时可以获得磁盘上小尺寸(.svg)和更快性能(位图)的好处。

    工作流程如下:

    1. 解析必要的游戏资产
    2. 从磁盘加载相关的.svg资产
    3. 将.svg内容绘制为位图
    4. 扔掉装好的.svg
    5. 重复所有资产
    6. 开始等级
    7.   

      计算中是否使用了与密度无关的像素?

      是的,我按如下方式使用它:

      sprite.x = new_x_position * screen_density;
      

答案 1 :(得分:0)

许多开发人员在首次运行时包含两个资源副本或下载高分辨率副本。如果他们在第一次运行时下载,那么他们就没有使用Android资源管理器。