【组件分享】使用Mask+Graphic魔改的多边形遮罩组件

因为之前的游戏,需要使用图片切割的模块,顺便研究了一下这个功能如何实现,如果说错了什么,请大家指出。

最后在Mask源码里发现了惊喜。。。mask组件就是用Graphic实现遮罩的,而且其中的MaskType.ELLIPSE,挺适合魔改成多边形遮罩。。。

于是我就忍不住动手了。。。

思路大概是这样子,具体实现就看代码里,好几个月了,我也忘了当时怎么想的了。。。

源码奉上myMask.zip (2.3 KB)

如何使用:

var point = this.collider.points
var myMaskNode = this.node.getComponent(myMask)

    if(myMaskNode){

    }
    else{
        myMaskNode = this.node.addComponent(myMask)
    }

    myMaskNode._setMyData(point)//设置当前遮罩图形
    myMaskNode._updateGraphics()//刷新遮罩

我现在是直接挂在多边形的刚体上,所以就直接遮罩了。。。反正大概就是这么用的

顺便付上我用这个写的一个小游戏。。。大家看情况帮我点点呗。。。
不点也没关系,反正做游戏都是给自己玩的。。。哈哈哈哈

9赞

帮顶.

有点厉害的样子,顶一下

顶,还挺不错的。

怎么办你越来越牛皮了,我还是这么咸鱼

mark

我还是个菜鸡,取巧而已

牛逼,无语附加

能不能帮我写个范例Mask_Demo.rar (446.6 KB):grinning:有点没搞清楚

楼主,箱子变成2半是用什么弄的呢

这个组件+物理多边形刚体组件

mark

刚好有项目需求用到 谢谢楼主慷慨分享