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

时间:2023-02-07 21:13:28
    --遮罩层
    local maskLayer = CCLayerColor:create(ccc4(0, 0, 0, 120), visibleSize.width, visibleSize.height);
    self:addChild(maskLayer)
    
    --触摸屏蔽层
    local touchLayer = CCLayer:create();
    touchLayer:setContentSize(CCSize(visibleSize.width, visibleSize.height))
    
    local function touchLayerCallFunc(eventType, x, y)
        --LuaLog("======000========", eventType)
        --LuaLog("======111========", x)
        --LuaLog("======222========", y)
	//在began触摸时,返回true,消息将被拦截,这样就实现了屏蔽层
        if eventType == "began" then
            return true
        end
    end
    
    --这个函数的使用我在这篇博客中有说明(http://blog.csdn.net/tianxiawuzhei/article/details/46011101)
    touchLayer:registerScriptTouchHandler(touchLayerCallFunc, false, newPriority, true)
    touchLayer:setTouchEnabled(true)
    maskLayer:addChild(touchLayer)
总结:
其实上面两个层可以和为一个层,因为CCLayerColor本身就是继承自CCLayer,所以同样可以实现触摸屏蔽。
这里只是为了看起来更清晰。