HoleLayer=class("HoleLayer",function()
return cc.LayerColor:create(cc.c4b(0,60,30,255))
end)
HoleLayer.ctor=function(self)
local function onTouchBegin(touch,event)
if self:onTouchBegin(touch,event) then
return true
end
return false
end
local function onTouchMoved(touch,event)
self:onTouchMoved(touch,event)
end
local function onTouchEnded(touch,event)
self:onTouchEnded(touch,event)
end
local listener=cc.EventListenerTouchOneByOne:create()
listener:registerScriptHandler(onTouchBegin,cc.Handler.EVENT_TOUCH_BEGAN)
listener:registerScriptHandler(onTouchMoved,cc.Handler.EVENT_TOUCH_MOVED)
listener:registerScriptHandler(onTouchEnded,cc.Handler.EVENT_TOUCH_ENDED)
local dispacher=cc.Director:getInstance():getEventDispatcher()
dispacher:addEventListenerWithSceneGraphPriority(listener,self)
--添加BackgrounClipping
local node=require("sprite/clipping/Background")
self.outerClip=node.create()
--添加子弹HoleClip
local hole=require("sprite/clipping/HoleClipping")
self.holeClip=hole.create()
self.holeClip:addContent(self.outerClip:block())
self.outerClip:addChild(self.holeClip)
self:addChild(self.outerClip)
end
HoleLayer.onTouchBegin=function(self,touch,event)
cclog("<HoleLayer.onTouchBegin>")
return true
end
HoleLayer.onTouchMoved=function(self,touch,event)
end
HoleLayer.onTouchEnded=function(self,touch,event)
local point=touch:getLocation() --返回的是WordSpace坐标
self.holeClip:addHole(self.holeClip:convertToNodeSpace(point)) --转换成NodeSpace
--outerClip特效
local action1=cc.ScaleBy:create(0.05,0.95)
local action2=cc.ScaleTo:create(0.1,1)
self.outerClip:runAction(cc.Sequence:create(action1,action2))
end
HoleLayer.create=function()
local layer=HoleLayer.new()
return layer
end
return HoleLayer