加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

cocos2dx - lua 中实现遮罩层和屏蔽层

发布时间:2020-12-14 17:27:56 所属栏目:百科 来源:网络整理
导读: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 = sel


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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读