游戏新手任务中遇到抠图需求,需要抠图使屏幕中只有扣除部分是明亮的,其余部分都是灰暗且不可点击。
方案一 : 使用clippingNode
通过设置clippingNode的invertered的属性,实现遮罩部分的反转,使得图片产生抠图效果。
具体代码如下:
local clippingNode = cc.ClippingNode:create();
local stencil = cc.DrawNode:create();
stencil:drawSolidCircle(cc.p(point), 46, 2 * math.pi,50,cc.c4b(0,0,0,0));
clippingNode:setStencil(stencil);
clippingNode:setInverted(true);
clippingNode:addChild(blockComponent);
效果如下
方案二: 使用混合特效
这个方法是我之前做flash的时候使用的方法,利用其中图片混合时候擦除上层图片。
但是具体使用的时候发现图片会 将整个屏幕中的元素都擦除而不仅仅是上层图片,
具体原因不清楚,研究一下再来填坑。