2015年3月18日 星期三

[Corona SDK] config.lua中的scale - 實例演練

[Corona SDK] config.lua中的scale怎麼設定呢?裡,
我們看到了config.lua中scale的意義,
現在就來實際演練一下,
實際操作時,不只width,height,scale要注意,
原圖的大小也有關係,
Simulator裡"View As"所選的手機解析度也會影響,
假設原圖是一張320x480大小:

1. 如果我們config.lua的設定如下:

width = 320,
height = 480,
scale = "none"
View As 320 x 480
View As 640 x 960
View As 1080 x 1920
View As 1920 x 1080
那麼,因為圖和原始畫布比例一樣,
所以不管用什麼解析度的手機來看都是完整的,雖然有的可能會變形

2. 如果將scale改成letterbox呢?

width = 320,
height = 480,
scale = "letterbox"
View As 320 x 480
View As 640 x 960
View As 1080 x 1920
View As 1920 x 1080
在320x480以及640x960的解析度,畫面都是滿框不變形,因為它們比例一樣,
在1080x1920的解析度,上下有黑邊,因為它的長寛比和320x480不同,所以scale後,相當於320x480的圖畫在320x568左右的畫布上,
在1920x1080的解析度,左右有黑邊,因為它的長寛比和320x480不同,所以scale後,相當於320x480的圖畫在853x480左右的畫布上,

3. 如果將scale改成zoomEven呢?
width = 320,
height = 480,
scale = "zoomEven"
View As 320 x 480
View As 640 x 960
View As 1080 x 1920
View As 1920 x 1080


一樣,320x480以及640x960的解析度,畫面都是滿框不變形,因為它們比例一樣,
在1080x1920的解析度,左右被截掉了,因為它的長寛比和320x480不同,所以scale後,相當於320x480的圖畫在270x480左右的畫布上,
在1920x1080的解析度,上下被截掉了,因為它的長寛比和320x480不同,所以scale後,相當於320x480的圖畫在320x180左右的畫布上,

4. 如果將scale改成zoomStretch呢?
width = 320,
height = 480,
scale = "zoomStretch"
View As 320 x 480
View As 640 x 960
View As 1080 x 1920
View As 1920 x 1080
在320x480以及640x960的解析度,畫面都是滿框不變形,因為它們比例一樣,
在1080x1920和1920x1080的解析度,畫面是滿框,但會變形

如果原圖不是320x480呢?
也就是說,如果原圖長寬比和config.lua裡的長寬比不同呢?
那就必須同時考慮原圖,config.luawidth/height設定,再配合scale的參數,觀念是類似的...
基本上,如果你的原圖只是當背景用,比例不重要的話,那scale就設成zoomStretch
如果比例很重要,但是可以接受截圖,那scale就設成zoomEven
如果比例很重要,但是可以接受黑邊,那scale就設成letterbox
如果比例很重要,不能接受截圖和黑邊,那...你就必須準備多張不同解析度的圖囉

沒有留言:

張貼留言