看板 GameDesign 關於我們 聯絡資訊
※ 引述《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