2012-02-29 39 views
3

enter image description here我需要一個覆蓋整個屏幕的「蒙版」圖層,其中央部分(圓圈)是透明的。然後,我可以使用觸摸移動蒙版圖層。用戶只能看到中間的透明部分。ios遊戲製作蒙版圖層效果

我不認爲一個PNG文件可以幫助,因爲該文件需要非常大,以覆蓋整個屏幕。

那麼有可能通過編碼來做到這一點?

我發現這個在線,但對openGL不太瞭解。 http://www.cocos2d-iphone.org/forum/topic/7921

如果我可以使用CCMaskLayer和半徑輸入,這將是很好的。我可以通過我自己處理觸摸事件。

附png文件預期結果,中間部分是透明的。我需要這個來覆蓋我的屏幕,只顯示中間部分。紅色部分被覆蓋。

+0

此鏈接可能會幫助ühttp://www.iphonedevsdk.com/forum/iphone-sdk-development/87296-how-do-i-mask-jpeg-when-they-dont-support -transparency.html – DivineDesert 2012-02-29 08:22:15

回答

3

您可以解決裁剪圓紋理這個任務有兩種方式:

1)繪製圓的紋理精靈在屏幕中心及周圍繪製另一個4個精靈(頂部,底部,左側和右側)與小紅色的紋理,但縮放覆蓋所有屏幕。

2)(更優雅但更難實現)使您的蒙版圖層全屏,但調整紋理座標。具體爲:

  • 集保鮮模式GL_CLAMP_TO_EDGE到你的圈子紋理
  • 調整層的頂點紋理座標(要做到這一點,你需要繼承的基礎CCLayer):

    enter image description here

這裏v表示頂點位置和t-紋理座標。您需要爲圖層的四個頂點設置正確的紋理座標。未來,如果您想要拖動圓圈,則需要向紋理座標添加一些偏移值。

+0

第一個解決方案是否意味着我可以自由擴展其他8個方塊?所以我可以只使用一個小的PNG文件並擴展它?據我所知,縮放非常廣泛。透明度可能會改變:( – OMGPOP 2012-02-29 13:33:57

+0

是的,你甚至可以使用普通白色紋理的精靈並塗成紅色 – brigadir 2012-03-01 07:05:43

+0

感謝你的回答,但是我仍然在等待openGL解決方案,因爲它們更優雅,這樣我就可以輕鬆地更改形狀在中間等(編碼,而不是固定PNG文件) – OMGPOP 2012-03-09 03:26:44