0

在 corona sdk 中是否有可能我们为特定应用程序编写一个代码,它可以在 ipad 和 iphone 上运行,而无需分别更改两个设备的对象坐标和图像大小?可以通过display.contentHeight和display.contentWidth实现吗?

4

2 回答 2

2

泥基本是对的。通过设置内容的宽度/高度,Corona SDK 将自动在 iPhone / iPad (+retina) 屏幕上绘制和缩放您的应用程序。考虑它的最佳方法是在 320x480 屏幕上设计您的应用程序 - 然后提供该屏幕尺寸的图像。然后为更大的屏幕创建第二组图像。通过使用 Corona 的 display.newImageRect(),它将为 iPhone 加载小图像,然后在 iPad/视网膜显示器上加载较大的分辨率图像。

看看这篇文章: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
            ["@4x"] = 4
        },
    },
}

当您调用 display.contentHeight 和 display.contentWidth 时,您只是从 config.lua 文件中读取这些值。如果我需要进行任何特定的定位计算,我倾向于使用一些全局变量。在你的 main.lua 中定义这些:

screenWidth = display.contentWidth - (display.screenOriginX*2)
screenHeight = display.contentHeight - (display.screenOriginY*2)
screenTop = display.screenOriginY
screenRight = display.contentWidth - display.screenOriginX
screenBottom = display.contentHeight - display.screenOriginY
screenLeft = display.screenOriginX
screenCenterX = display.contentWidth/2
screenCenterY = display.contentHeight/2

例如:

companyLogo = display.newImageRect("companyLogo.png",64,64)

您将需要 1 张名为 companyLogo.png 的 64x64px 图像。这将适用于 < iPhone 4。然后您需要一个名为 companyLogo@2x.png 的 128x128px 图像。Corona 将在 iPhone 4 和 iPad 上自动使用它。同样,另一个名为 companyLogo@4x.png 的 256x56 图像将用于 iPad 3 视网膜显示屏。

于 2012-06-25T08:38:36.417 回答
0

是的,这是可能的。例如,如果您的应用程序是为 640x480 编写的,您可以通过告诉它您希望它在文件中如何缩放来让它自动缩放到其他分辨率:config.lua

application =
{
        content =
        {
                width = 640,
                height = 480,
                scale = "letterbox"
        },
} 

更多信息。

于 2012-06-22T20:38:50.317 回答