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

Android 2D opengl游戏中支持多屏幕的提示?,android,opengl-es,image-scaling,Android,Opengl Es,Image Scaling,支持多个屏幕的问题已经被问到了极致,但我还没有看到关于游戏开发的太多讨论(包括点击框、碰撞检查等) 目前,我的游戏在“兼容模式”下运行,由于升级,在高端设备上产生的视觉效果非常差。我正在寻找一些技巧和建议,看看其他人做了什么,使他们的游戏图形在所有屏幕尺寸上都看起来不错 开发人员是否包含每个资源的2个副本(中密度和高密度),或者高密度资源是否只是针对低密度设备进行了缩减 在您的计算中是否使用了与密度无关的像素?许多开发人员在第一次运行时包括两个资源副本或下载高分辨率副本。如果他们第一次下载,那么

支持多个屏幕的问题已经被问到了极致,但我还没有看到关于游戏开发的太多讨论(包括点击框、碰撞检查等)

目前,我的游戏在“兼容模式”下运行,由于升级,在高端设备上产生的视觉效果非常差。我正在寻找一些技巧和建议,看看其他人做了什么,使他们的游戏图形在所有屏幕尺寸上都看起来不错

开发人员是否包含每个资源的2个副本(中密度和高密度),或者高密度资源是否只是针对低密度设备进行了缩减


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

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

开发人员是否包含每个资源的2个副本(中密度和高密度),或者高密度资源是否只是针对低密度设备进行了缩减

这是一种处理事情的方法,我看到了以下做法:

  • 包括要支持的每个分辨率的位图
  • 包括要支持的最高分辨率的位图,以及其他分辨率的缩小比例。
    • 如果使用tilesheet(即较大位图中的多个小位图),则需要注意双线性过滤,即边缘像素与相邻资源的混合。如果发生这种情况,您将在资产中获得行/工件。这里有一个讨论:关于这个问题
  • 使用矢量图形获得您想要支持的最高分辨率
  • 使用方法2时。或3。我就是这样处理的:

    • 创建目标为960 x 1600屏幕大小的资产
    • 480 x 800-比例减半
    • 320 x 400-比例为三分之一
    这为我提供了未来计算所需的屏幕密度值

    我更喜欢方法3。

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

    工作流程如下:

  • 解析一个关卡所需的游戏资源
  • 从磁盘加载相关的.svg资产
  • 将.svg内容绘制成位图
  • 扔掉已加载的.svg
  • 对所有资产重复此操作
  • 起始水平
  • 计算中是否使用与密度无关的像素

    是的,我使用它如下:

    sprite.x = new_x_position * screen_density;