codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
BackLayer=class("BackLayer",function() return cc.Layer:create() end) BackLayer.ctor=function(self) local size=cc.Director:getInstance():getWinSize() self.size=size local sprite=cc.Sprite:create("clipguide/HelloWorld.png") sprite:setPosition(size.width/2,size.height/2) self:addChild(sprite) --添加ClippingNode遮罩 local clip=require("sprite.clipping.guide.ClipGuide") self.clip=clip.create() self:addChild(self.clip) --添加提示标志 self.tip=self:guideSprite() self:addChild(self.tip) --添加监听事件 self:event() end BackLayer.guideSprite=function(self) --提示标志 local guide=cc.Sprite:create() guide:setTexture("clipguide/tip.png") guide:setPosition(self.size.width/2-55,self.size.height/2+40) guide:setScale(0.4) guide:setRotation(60) --提示标志动作 local scale1=cc.ScaleBy:create(0.25,0.95) local scale2=cc.ScaleTo:create(0.25,0.4) local action=cc.Sequence:create(scale1,scale2) guide:runAction(cc.RepeatForever:create(action)) return guide end BackLayer.event=function(self) local function onTouchBegin(touch,event) return true end local function onTouchMoved(touch,event) end local function onTouchEnded(touch,event) local location=touch:getLocationInView() -- touch in screen local glPoint=cc.Director:getInstance():convertToGL(location) if self.clip and self.tip then local rect=self.clip:getStencilRect() if cc.rectContainsPoint(rect,glPoint) then self:removeChild(self.clip,true) self:removeChild(self.tip,true) self.clip,self.tip=nil,nil end end 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) end BackLayer.create=function() local layer=BackLayer.new() return layer end return BackLayer
Private
[
?
]
Run code
Submit