HoleClipping=class("HoleClipping",function()
return cc.ClippingNode:create()
end)
HoleClipping.ctor=function(self)
self:setInverted(true)
self:setAlphaThreshold(0.5)
self.stencil=cc.Node:create()
self.holes=cc.Node:create()
self:setStencil(self.stencil)
self:addChild(self.holes)
end
--在指定点添加子弹孔
HoleClipping.addHole=function(self,point)
self.rotate=math.random(0,1)*360 --旋转角度
self.scale=math.random(0,1)*0.2+0.9 --缩放
local stencil=function()
local sprite=cc.Sprite:create("Images/hole_stencil.png")
sprite:setPosition(point.x,point.y)
sprite:setScale(self.scale)
sprite:setRotation(self.rotate)
return sprite
end
local content=function()
local sprite=cc.Sprite:create("Images/hole_effect.png")
sprite:setPosition(point.x,point.y)
sprite:setScale(self.scale)
sprite:setRotation(self.rotate)
return sprite
end
self.holes:addChild(content())
self.stencil:addChild(stencil())
end
--添加剪裁内容
HoleClipping.addContent=function(self,content)
self.holes:addChild(content)
end
HoleClipping.create=function()
local clip=HoleClipping.new()
return clip
end
return HoleClipping