天天看點

初試 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)