使我的游戏适用于所有屏幕尺寸 - corona

我的游戏框架比屏幕稍大。在Galaxy S5 / S4上运行良好,也在iPhone 5/6上运行良好。 我正在使用此代码使游戏框架适合所有屏幕大小:config.lua:`` `local aspectRatio = display.pixelHeight / display.pixelWidth应用程序= {内容= {宽度= aspectRatio > 1.5 and 1080 or math.ceil(1920 / aspectRatio),高度= aspectRatio <1.5 and 1920 or math.ceil(1080 * aspectRatio),scale =“字母箱”,fps = 60,... ]```在诺基亚Lumia,Nexus 5(我已隐藏导航栏)和iPhone 4上看起来不完美。只是稍微长一点(游戏超出屏幕框架)。也许有人可以帮我吗?我不知道该怎么做才能使它在所有设备上都正常工作。

点赞
用户2653067
用户2653067

似乎你需要全面了解配置文件和动态缩放。这个问题比较普遍,我建议你阅读一下这篇关于“极致配置/现代化配置”的文章。

有些屏幕更宽,有些屏幕更窄。如果我们将分辨率排除在外,更容易想象不同的屏幕。Corona使得通过动态缩放来排除分辨率更加容易。使用动态缩放,你可以使用一组共同的屏幕坐标,Corona将自动为不同分辨率的屏幕缩放文本和图形。它可以根据你的起点上下缩放。还可以在需要放大时替换更高分辨率的映像。这都是由项目文件夹中的一个名为config.lua的Lua文件管理的。

由于可用分辨率差异很大,使用相同的比例对每个设备更有帮助。无论你是在320×480的iPhone 3GS还是在1536×2048的Retina iPad上,位置(0,0)表示左上角,竖直纵向模式下(320,480)是右下角。屏幕中心是(160,240)。在这种情况下,每个点在低分辨率设备上都是一个像素,例如3GS,它的原生屏幕分辨率为320×480,而在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,
  },
 },
}

请参阅此处:使用Corona SDK中的不同屏幕尺寸

2015-04-13 05:18:23