2013年11月20日 星期三

Graphics 1.0 to 2.0 要知道的事- corona

從Public Release 2013.2076 之後

可以說是自上次widget 1.0 升級成 2.0之後 又一個重大改變

對開發者來說 最大困擾是-原本的CODE怎麼BUILD不過了!?

原因是在2076版使用了Graphics 2.0,在原本的CODE上增加了些彈性和強化

有三個需要知道如何修正程式碼地方要了解

在修改之前,Corona  也提供了一個方法讓既有開發者能"無痛"的移殖至Graphics 2.0

在config.lua 設定檔中加上 graphicsCompatibility = 1

使其相容於graphics 1.0-運氣好的話就能BUILD過了....官方是如此說著

所以-為了能夠獲得更好的相容性及更多的彈性

我們來了解需要修改的部份有哪些

  1. display.setReferencePoint => Anchor Point
  2. color values 0~255 => 0~1
  3. text color : setTextColor => setFillColor

display.setReferencePoint => Anchor Point


在程式撰寫時,為了不讓元件走位,通常都會設置ReferencePoint,讓其固定以某一個方位為座標對照點

現在我們必須使用錨點來指定座標對照點,優點是再也不受邊角的限制,不一定要將對照點設在正中央或四個角

舊用法
object:setReferencePoint(display.CenterReferencePoint)

新用法
object.anchorX,object.anchorY = 0.5,0.5


由對照圖表可以看出原來的

referencePoint VS anchor Point

display.TopLeftReferencePoint         => 0,0
display.TopCenterReferencePoint     => 0.5,0
display.TopRightReferencePoint       => 1,0
display.CenterLeftReferencePoint     => 0,0.5
display.CenterReferencePoint           => 0.5,0.5
display.CenterRightReferencePoint   => 1,0.5
display.BottomLeftReferencePoint   => 0,1
display.BottomCenterReferencePoint=> 0.5,1
display.BottomRightReferencePoint  => 1,1

而且 不只如此,此錨點能作用在像rotation旋轉的動作上,舉例來說要做一個時鐘,現在只要將時針,分針的圖放上螢幕,然後將anchor Point(錨點)設在其轉軸點(如0.2,0.5),接著按每秒轉動的角度做旋轉,就能夠使用更簡潔的程式碼完成。

color values 0~255 => 0~1

顏色設定的使用方法從0~255的值變成0~1

實際用法依然是使用0~255 只是現在要除上一個255的基底

舊用法
obj:setFillColor(255,200,200,255)

新用法
obj:setFillColor(255/255,200/255,200/255,255/255)


textColor : setTextColor => setFillColor

同時將設定字體顏色的用法調整和設定Color的方法一致

並且套用最新設置顏色的值 0~1

舊用法
textObj:setTextColor(255,200,200,255)

新用法
textObj:setFillColor(255/255,200/255,200/255,255/255)

雖然這次更動幾乎讓小島的程式都要回去再看過,但看在加強了不少東西的份上,就勉勉強強欣然接受了!

沒有留言:

張貼留言