Skip to content
Zheng Ping edited this page Apr 23, 2015 · 5 revisions

Corona基础

项目配置

配置文件

配置文件config.lua的基本结构是一个lua表:

application =
{
    content =
    {
        -- parameters here
    }
}

内容缩放

宽|高

application =
{
    content =
    {
        width = 320,
        height = 480,
    }
}

如果你的配置文件中漏掉了宽高或者把它们设置成了0,内容缩放就不会发生。

如果你的应用是横屏设计,你仍然应该按照纵向定向来设置宽高。比如用于iPhone6的横屏应用还是应该把宽高设置为750和1334,而不是1334和750。

缩放

内容区域的缩放方式由scale指定,如果你在配置中不指定缩放方式,配置文件中设定的宽高值将会被忽略,内容区域将会被设置为设备的宽高像素值。

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

scale 的值可以是:

  • "letterbox"表示缩放内容区域至填充屏幕,会保留原来的宽高比。这种缩放策略可能会导致在设备中出现黑边条(未能被内容填充的空白区域),但是这些未被填充区域也是可以通过编程来用可视化的元素填充的。
  • "zoomEven"表示缩放内容区域至把屏幕填充满,会保留原来的宽高比。这种缩放策略可能会把内容区的某些边条裁剪掉。
  • "adaptive"会在设备上动态选择内容的宽高,而不是一个静态的内容区域。它会使用一个独立于平台的虚拟DPI,大概是160。
  • "zoomStretch"表示缩放内容填充整个屏幕,所有的内容都会出现在屏幕上,因此内容可能会被拉伸,所以不推荐这个模式。

xAlign和yAlign

默认情况下,被缩放的内容在屏幕上是居中的。如果你想让内容区域向某个边对齐,你可以设置xAlignyAlign

  • xAlign表示内容区域在x轴的对齐方式,可以是"left","center"或"right";
  • yAlign表示y轴的对齐方式,可以是"top","center"或"bottom"。

动态选择图像

除了内容缩放,corona支持动态选择图像。如果你的应用同时面向Retina/HD设备,你不应该只是让corona简单地缩放图片来适应更宽的屏幕分辨率。这可能会导致下面两个问题:

  1. 如果你设计的图片是低分辨率,你又要缩放它们来适应Retina/HD设备,那么图片看上去就会异常模糊;
  2. 相反,如果你设计的图片是用于Retina/HD设备,你又想缩放它们在低分辨率的设备上使用,大图片会消耗更多的纹理内存,这可能会造成性能问题,有时甚至不能正常显示。

解决方案是为每张图片创建多个版本,让它们适应两到三种不同的分辨率,并通过它们所属的图像集命名。Corona会自动选择最适用于设备的分辨率的图片。注意这个特性只支持用display.newImageRect()显示的图片和来自包含了所有sheet大小参数的image sheets的图片和子画面。