完善Corona工程中的config.lua文件

本文讨论了如何在config.lua文件中设置内容区域尺寸,以确保在不同设备上内容能够正确填充屏幕,通过使用letterBox缩放模式,使得应用在各种分辨率设备上都能保持良好的视觉效果。

翻译自Tutorial: Modernizing the config.lua

注意两个概念:

  • 内容区域(Content Area)的尺寸(在config.lua文件中定义的尺寸)
display.contentWidth,display.contentHeight
  • 屏幕的尺寸(设备的真实尺寸)
display.pixelWidth,display.pixelHeight

如果将scale的值设置为letterBox的话,当内容区域的宽高比例与设备的真实宽高比例相同的时候,便可充满整个屏幕。所以我们希望在config.lua文件中设置的widthheight的比例等于设备的宽、高比例。

注意:

坐标原点(0,0)是以内容区域的左上角,而不是屏幕的左上角

所以config.lua文件内容可以这样设置:

local aspectRatio = display.pixelHeight / display.pixelWidth

application = {
   content = {
      width = aspectRatio > 1.5 and 320 or math.floor( 480 / aspectRatio ),
      height = aspectRatio < 1.5 and 480 or math.floor( 320 * aspectRatio ),
      scale = "letterBox",
      fps = 30,

      imageSuffix = {
         ["@2x"] = 1.5,
         ["@4x"] = 3.0,
      },
   },
}

讲解:

我们的目标是将内容区域的宽、高比例设置成与设备的宽、高比相同。

对于基本的320x480设备,我们将内容区域的宽设为320,高设为480。

对于”高”设备,像大都数Android设备、iPhone5s等系列设备,我们固定内容区域的宽为320,而高会自动计算,来确保比例相同。

对于”宽”设备,像iPad等设备,我们固定内容区域的高为480,而宽会自动计算,来确保比例相同。

如今,市场上出现了更高分辨率的设备,这也意味着要支持的小屏设备越来越少。一个便利和现代化的内容区域设置为800×1200

local aspectRatio = display.pixelHeight / display.pixelWidth
application = {
   content = {
      width = aspectRatio > 1.5 and 800 or math.floor( 1200 / aspectRatio ),
      height = aspectRatio < 1.5 and 1200 or math.floor( 800 * aspectRatio ),
      scale = "letterBox",
      fps = 30,

      imageSuffix = {
         ["@2x"] = 1.3,
      },
   },
}

额外补充:

Corona论坛中有一位开发者提供了另一种方案:

local ori_X=display.screenOriginX;
local ori_Y=display.screenOriginY;
print( ori_X,ori_Y );//屏幕的左上角坐标

local width=display.pixelWidth;
local height=display.pixelHeight;//设备的宽、高
print( width,height );

local rect=display.newRect(  ori_X, ori_Y, width, height );
rect.anchorX=0;
rect.anchorY=0;
rect:setFillColor( 0,1,1 );
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值