mobile - Corona SDK 跨设备屏幕分辨率

标签 mobile screen-resolution coronasdk aspect-ratio

这将是那些寻找可能不存在的答案的尴尬问题之一,但这里是。

我一直在使用 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/

相关文章:

android - 处理具有更高分辨率的 Android 设备的屏幕,例如 Samsung Tab

jquery - 调整窗口宽度时删除类和样式标签

lua - 在lua中将单个 Sprite 存储在多个表中

image - 在 Lua 中更改图像

html - 移动 CSS 页面宽度

javascript - 关于输入类型="number"在手机中打开数字键盘但如何打开输入类型="password"的小键盘

javascript - Chrome 移动模拟器中的 ReactJS 升级导致触摸事件中断

css - 谷歌字体在桌面上加载,但不是在移动设备上?

javascript - 如何更改转换 :translate css rule according to the screen resolution?

android - Corona newScrollView hideScrollBar 仍然显示滚动条