【问题标题】:Corona SDK Cross Device Screen ResolutionCorona SDK 跨设备屏幕分辨率
【发布时间】:2012-03-19 11:27:17
【问题描述】:

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

我一直在使用 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 的全部意义,开发人员在开始任何新项目时都会使用某种“典型”设置?

谢谢

【问题讨论】:

    标签: mobile screen-resolution coronasdk aspect-ratio


    【解决方案1】:

    根据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
    

    这只是一个摘要,因此请查看链接以获取更详细的说明。

    【讨论】:

      【解决方案2】:

      好吧,如果您想为不同的设备提供正确的图像,您可以使用稍微偏离 2 的数字进行缩放。例如:

          application = 
      {
          content = 
          { 
              width = 640,
              height = 960, 
              scale = "zoomEven",
              imageSuffix =
              {
                  ["-iphone3"] = 0.5,
                  ["-ipad2"] = 1.066,
                  ["-ipad3"] = 2.133,
              },
          }
      }
      

      其中“background.png”将是 iphone4 的 640x960 图像,而“background-iphone3.png”将是 320x480(您不需要这个,但它会减少 iphone3 应用程序的内存需求)。 “background-ipad3.png”需要为 1536x2048(-ipad2 的一半)。

      当然,它不能解决屏幕定位的纵横比,但它可以解决所有其他与 gfx 相关的问题。请记住使用 display.newImageRect,而不是 display.newImage,否则您将看不到任何区别。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多