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