cocos2d-x TestLua 之 设置菜单优先级 setHandlerPriority()

欢迎各位童鞋转载,转载请注明出处:http://blog.csdn.net/song_hui_xiang

作者新浪微博:http://weibo.com/u/3168848533

作者腾讯微博:http://t.qq.com/song_huixiang

--当两个或多个menu重叠时,我们可以设置它们的优先级来决定触发哪个。
local size = CCDirector:sharedDirector():getWinSize()
local m_bPriority = false

local menu_1 = CCMenu:create()
local menu_2 = CCMenu:create()

--创建菜单1
local function menu1CallFunc(tag,sender)
    if m_bPriority then
        menu_2:setHandlerPriority(kCCMenuHandlerPriority + 20)  --设置菜单的优先级。 数值越低,优先级越高
        m_bPriority = false
    else
        menu_2:setHandlerPriority(kCCMenuHandlerPriority - 20)  --设置菜单的优先级。 数值越低,优先级越高
        m_bPriority = true
    end
end

local item_sp_1 = CCSprite:create("fang_n.png")
local item_sp_2 = CCSprite:create("fang_d.png")

local item_1 = CCMenuItemSprite:create(item_sp_1,item_sp_2)
item_1:setPosition(ccp(size.width*0.5-item_1:getContentSize().width*0.5,size.height*0.5))
item_1:registerScriptTapHandler(menu1CallFunc)

menu_1:setPosition(ccp(0,0))
menu_1:addChild(item_1)
mainLayer:addChild(menu_1)


--创建菜单2
local function menu2CallFunc(tag,sender)
    local menu_2 = tolua.cast(sender:getParent(),"CCMenu")

    if m_bPriority then
        menu_2:setHandlerPriority(kCCMenuHandlerPriority + 20)  --设置菜单的优先级。 数值越低,优先级越高
        m_bPriority = false
    else
        menu_2:setHandlerPriority(kCCMenuHandlerPriority - 20)  --设置菜单的优先级。 数值越低,优先级越高
        m_bPriority = true
    end
end

local item_sp_3 = CCSprite:create("gong_n.png")
local item_sp_4 = CCSprite:create("gong_d.png")

local item_2 = CCMenuItemSprite:create(item_sp_3,item_sp_4)
item_2:setPosition(ccp(size.width*0.5,size.height*0.5))
item_2:registerScriptTapHandler(menu2CallFunc)

menu_2:setPosition(ccp(0,0))
menu_2:addChild(item_2)
mainLayer:addChild(menu_2)


local scene = CCScene:create()
scene:addChild(mainLayer)
CCDirector:sharedDirector():runWithScene(scene)

cocos2d-x TestLua 之 设置菜单优先级 setHandlerPriority()_第1张图片

你可能感兴趣的:(cocos2d-x TestLua 之 设置菜单优先级 setHandlerPriority())