在电晕sdk中为ipad和iphone调整图像大小

时间:2012-06-22 10:33:11

标签: lua corona

是否有可能在电晕sdk中我们为一些应用程序编写一个代码,它可以在ipad和iphone上运行,而不是单独更改两个设备的对象坐标和图像大小? 可以通过display.contentHeight和display.contentWidth吗?

2 个答案:

答案 0 :(得分:2)

泥基本上是正确的。通过设置内容宽度/高度,Corona SDK将自动在iPhone / iPad(+视网膜)屏幕上绘制和缩放您的应用程序。考虑它的最佳方式是在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个64x64px图像,名为companyLogo.png。这将是< iPhone 4.然后您需要一个名为companyLogo@2x.png的128x128px图像。 Corona将在iPhone 4和iPad上自动使用它。同样,另一个名为companyLogo@4x.png的256x56图像将用于iPad 3视网膜显示屏。

答案 1 :(得分:0)

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

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

More info.