这将是那些寻找可能不存在的答案的尴尬问题之一,但这里是。
我一直在使用 Corona 开发一些简单的游戏,虽然该功能似乎在我测试过的大多数物理设备上运行得很好,但一个主要问题是布局。我知道您无法真正完美地为每个设备构建,但我想知道是否有一种通用方法可以使应用程序在尽可能多的屏幕上看起来很好。我有权访问这些设备
- iPad 1 和 2:4:3 (1.33)
- iPhone 960 × 640 3:2 (1.5)
- iPhone 480x320 3:2 (1.5)
- Galaxy Nexus 16:9 (1.77)
据我所知,人们的目标是使用 320x480 作为缩放分辨率,然后让 Corona 升级到正确的设备分辨率(根据需要使用任何 @2x 图像),但这会导致信箱或裁剪,具体取决于 config.lua比例设置。虽然它确实可以正确缩放,但拥有信箱并不好。
那么我最好不要在配置文件中指定宽度和高度,而是首先使用某种屏幕检查来查找 1.33/1.5/1.77 的宽高比?当然,考虑到 Corona SDK 的全部意义,开发人员会使用某种“典型”设置来启动任何新项目?
谢谢
最佳答案
根据 Ansca 网站上的这个论坛帖子,我似乎找到了一个非常好的解决方案:http://developer.anscamobile.com/forum/2012/03/12/understanding-letterbox-scalling
总而言之,config.lua 应该如下所示:
application = {
content = {
width = 320,
height = 480,
scale = "letterbox",
xAlign = "center",
yAlign = "center",
imageSuffix = {
["@2x"] = 2,
},
}
}
为旧设备创建 360*570 的背景图像。 320x480 屏幕会稍微裁剪图像,并且对于较旧的 Android 设备可以很好地缩放。
为 iPad 和 iPhone 视网膜创建 1140*720 的背景图像 - 同样,这些图像将在 Android 上缩放并在 iOS 上稍微裁剪。
举个例子,您通常会创建一个 320x480 图像并使用以下命令显示它:
local bg = display.newImageRect("bg.png",320x480)
bg.x = display.contentWidth/2
bg.y = display.contentHeight/2
.. 相反,创建一个 360x570 背景并使用以下代码:
local bg = display.newImageRect("bg.png",360x570)
bg.x = display.contentWidth/2
bg.y = display.contentHeight/2
这只是一个摘要,因此请查看链接以获取更详细的说明。
关于mobile - Corona SDK 跨设备屏幕分辨率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9769319/