使用Corona SDK进行适配不同屏幕尺寸。

我正在使用 Corona SDK 制作我的第一个 iPhone 游戏,并希望它能在尽可能多的设备上运行(手机 + 平板电脑)。然而,我不确定如何处理不同的屏幕尺寸和分辨率。我使用 Corona 模拟器为 iPhone 5 开发了我的游戏,在该设备上工作良好。当我尝试在分辨率较低的设备上(如 iPhone 4)运行它时,每侧都会出现 2 个黑色矩形。我尝试创建具有不同分辨率的 2 个不同的背景,并将其添加到我的 config.lua 中:

imageSuffix = {
       ["@2x"] = 2
}

然而,这似乎并没有改变什么...我不确定在 config.lua 文件的内容中应该设置什么高度和宽度,还有应该为背景设置什么高度和宽度。如果这些问题很愚蠢,我很抱歉,我刚开始。提前感谢!

点赞
用户2260604
用户2260604

听起来你需要完全阅读有关配置文件和动态缩放的内容。

但是这个问题有点宏大,因此我建议你阅读有关“终极配置/现代化配置”的文章。

有些屏幕比较宽,而有些则比较窄。如果我们将分辨率从方程式中排除,那么可以更容易地可视化这些屏幕。Corona 使用动态缩放功能可以将分辨率排除在外。动态缩放功能可以使用通用的屏幕坐标,而 Corona 会自动缩放文本和图形以适应不同分辨率的屏幕。它可以根据起点缩放向上或向下,同时在需要缩放时可以替换高分辨率图像。所有这些都由项目文件夹中的一个名为 config.lua 的 Lua 文件进行管理。

由于可用分辨率差异很大,因此对于每个设备使用相同的比例是有帮助的。无论您使用的是分辨率为 320×480 的 iPhone 3GS 还是分辨率为 1536×2048 的 Retina iPad,位置 (0,0) 表示左上角,而在竖直肖像模式下,位置 (320,480) 是右下角。屏幕中心为 (160,240)。在此情况下,每个点都是像素在分辨率更低的设备上(如 3GS),每个点都是在 Retina iPad 上的四个像素。不要担心数学,Corona 会为您处理它。

来源:http://coronalabs.com/blog/2012/12/04/the-ultimate-config-lua-file/

这通过创建一个完全利用动态缩放和图像缩放的配置文件。

local aspectRatio = display.pixelHeight / display.pixelWidth
application = {
   content = {
      width = aspectRatio > 1.5 and 320 or math.ceil( 480 / aspectRatio ),
      height = aspectRatio < 1.5 and 480 or math.ceil( 320 * aspectRatio ),
      scale = "letterBox",
      fps = 30,

      imageSuffix = {
         ["@2"] = 1.8,
         ["@4"] = 3.6,
      },
   },
}
2014-07-29 09:29:13