天天看点

初试 ClippingNode 实现遮罩效果

--绘制一个圆,类型drawNode,将圆作为裁剪的类型

local circle = display.newCircle(50,

        {x =50, y = 0,

        fillColor = cc.c4f(1, 0, 0, 1),

        borderColor = cc.c4f(0, 1, 0, 1),

        borderWidth = 2})

--圆的动画:期望效果其他部分被遮盖,只能看到圆所在的图像

circle:runAction(cc.RepeatForever:create(

cc.Sequence:create(

cc.MoveTo:create(2,cc.p(-180,0)),cc.MoveTo:create(2,cc.p(50,0))

)

))

-- -- 这是一个圆形图片裁剪板

--local stencil= cc.Sprite:create('ui/r1.png')

--创建裁剪节点

local c_node = cc.ClippingNode:create()

c_node:setStencil(circle) -- 设置底板的裁剪板

c_node:setInverted(false) -- 设置底板不可见

c_node:setAlphaThreshold(0) --设置绘制底板的Alpha值为0

c_node:setPosition(display.cx,display.cy)

--创建底板

local sp = cc.Sprite:create('ui/open.png')

c_node:addChild(sp)

self:addChild(c_node)