self.imgFJ = cc.Sprite:create("#fj.png") self.imgFJ:setAnchorPoint(0,1) self.imgFJ:setPosition(self.winSize.width*0.71,self.winSize.height*0.95) local imgX = self.imgFJ:getPositionX() local imgY = self.imgFJ:getPositionY() local size = self.imgFJ:getContentSize() -- local layer = cc.LayerColor:create({ r = 30,g = 30,b = 30,a = 180 },self.winSize.width,self.winSize.height) layer = cc.Layer:create() local function touchLayerCallFunc(eventType,x,y) if event == "began" then -- print("======000========"..eventType) -- print("======111========"..x) -- print("======222========"..y) if x >= imgX and x <= imgX + size.width and y <= imgY and y >= imgY - size.height then -- 点击在layer的imgFJ上时吞并触摸 print("吞并触摸") return true end end print("不吞并触摸") return false end layer:registerScriptTouchHandler(touchLayerCallFunc) layer:setTouchEnabled(true) layer:addChild(self.imgFJ) self:addChild(layer)
遮罩层上高亮显示部分区域
-- 遮罩层上剪切高亮圆形 function TipsWindow:HighLightInColoerLayer(pos) -- 遮罩层上剪切高亮圆形,开始 self.colorLayer:hide() self.node = cc.Node:create() self.clip = cc.ClippingNode:create(self.node) self.clip:setInverted(true) self.clip:setAlphaThreshold(0) self:addChild(self.clip) self.blackLayer = cc.LayerColor:create(cc.c4b(0,150),display.width,display.height) self.clip:addChild(self.blackLayer) local glNode = cc.GLNode:create() glNode:setContentSize(cc.size(120,120)) glNode:setAnchorPoint(cc.p(0.5,0.5)) local function primitivesDraw() gl.lineWidth(2) cc.DrawPrimitives.drawColor4B(0,1) cc.DrawPrimitives.drawSolidCircle(pos,70,50,1,1) end glNode:registerScriptDrawHandler(primitivesDraw) self.node:addChild(glNode) self.glNode = glNode -- 遮罩层上剪切高亮圆形,结束 end