lua – 如何在coronasdk中动态缩放屏幕

前端之家收集整理的这篇文章主要介绍了lua – 如何在coronasdk中动态缩放屏幕前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我当前的配置文件是用于ipad视网膜,它工作得很好,但是当我选择屏幕较小的设备时,图像会变形.
这是我目前的config.lua

application = {
    content = {
        width = 768,--aspectRatio > 1.5 and 800 or math.ceil( 1200 / aspectRatio ),height = 1024,scale = "none",fps = 60,imageSuffix = {
            ["@2x"] = 1.3,}
    }
}

我想知道是否有一种方法可以动态设置宽度或高度,而无需为每个单独的设备硬编码这些数字.

解决方法

我建议你阅读这篇关于 “the ultimate config/modernizing the config”文章.

Some screens are wider while others are more narrow. If we take
resolution out of the equation,its easier to visualize the screens.
Corona makes it easy to take resolution out of the picture using
Dynamic Scaling. With Dynamic Scaling,you can use a common set of
screen coordinates and Corona will automatically scale the text and
graphics for different resolution screens. It can scale upwards or
downwards depending on your starting point. It also can substitute
higher resolution images when it needs to scale up. This is all
managed by a Lua file in your project folder called config.lua.

Since available resolutions vary considerably,it’s helpful to use the
same scale for each device. It doesn’t matter if you’re on an iPhone
3GS at 320×480 or a Retina iPad at 1536×2048,the location (0,0)
represents the top-left corner and (320,480),in vertical portrait
mode,is the bottom-right corner. The screen center is (160,240).
Each point,in this case,is one pixel on a lower-resolution device
like the 3GS,which has a native screen resolution of 320×480,while
each point is four pixels on a Retina iPad. Don’t worry about the math
— Corona will handle it for you.

Source: 07001

local aspectRatio = display.pixelHeight / display.pixelWidth
application = {
   content = {
      width = aspectRatio > 1.5 and 320 or math.ceil( 480 / aspectRatio ),height = aspectRatio < 1.5 and 480 or math.ceil( 320 * aspectRatio ),scale = "letterBox",fps = 30,imageSuffix = {
         ["@2x"] = 1.3,},}

猜你在找的Lua相关文章