作者linjack (嗯)
看板GameDesign
標題Re: [程式] Unity+ex2D v.s. Corona SDK
時間Mon Jul 23 21:20:58 2012
※ 引述《littleshan (我要加入劍道社!)》之銘言:
: ex2D 可以針對一群物件設定顯示範圍,超過範圍的部份不會被畫出來。若要實
: 作可捲動的視窗元件,這個功能相當有用。
: Corona 沒有這個功能,你得用別的東西把超出範圍的部份遮起來。
感謝 littleshan 做的精闢比較,而且對於獨立開發者而言非常詳細實用,
上次在資策會與奇銳合辦的那場演講聽你解說 ex2D 時,我就很好奇
到底 Unity3D + ex2D 與 CoronaSDK (或其他相關的 Lua 套件,如
gideros mobile 或 moaiSDK) 比起來,何者比較適合快速開發 2D 作品
我是對 Clipping 這段有點想提出來討論的,我理解沒錯的話這個應該和
Masking 是類似問題,而 CoronaSDK 確實有提供多層次 masking,
包括已經 mask 過的 DisplayObject 再 group 起來然後再 mask 一次,
類似的 setup code 大概如下:
local group = display.newGroup()
local image1 = display.newImageRect( group, "image1.png", 300, 150 )
local image2 = display.newImageRect( group, "image2.png", 300, 150 )
local image3 = display.newImageRect( group, "image3.png", 300, 150 )
image1:translate( center_x, center_y - 200 )
image2:translate( center_x, center_y )
image3:translate( center_x, center_y + 200 )
local mask = graphics.newMask( "mask.png" )
group:setMask( mask )
group:setReferencePoint( display.CenterReferencePoint )
group.maskX = group.x
group.maskY = group.y
只有最後這段 code 是有點怪的,根據 Corona 官方 API Doc,
在 group 上的 mask 設定好後,一定要這樣調整 group 的參考原點,
不然 mask 的顯示位置會有一個從 group Top/Left 到 Center 點間的距離差
mask 完之後基本上它是可以被當成一個顯示範圍、點擊事件接受範圍
都受限的獨立元件。當然這樣的東西要做成可捲動的視窗元件確實還是
稍嫌原始了,譬如說我得把拖曳距離用在 mask 的移動上,再把負值
用在 group 的位移上,讓那個 Clipping 框框看起來是停在原地不動的 ...
不過我沒翻過 Corona Labs / Community 那邊,搞不好有現成的可用吧 XD
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.136.104.62
※ 編輯: linjack 來自: 220.136.104.62 (07/23 21:24)
推 littleshan:Oh my god 我真的忘了還有 mask 可以用 07/24 10:11
→ littleshan:感謝提醒 07/24 10:11