欢迎各位童鞋转载,转载请注明出处:http://blog.csdn.net/song_hui_xiang
作者新浪微博:http://weibo.com/u/3168848533
作者腾讯微博:http://t.qq.com/song_huixiang
1.CCMenu是由菜单项CCMenuItem 组成的,通常先创建菜单项,然后使用1个或多个菜单项生成菜单。
2.CCMenuItem子类:
CCMenuItemImage:图片按钮菜单项(通过图片资源创建菜单项)
CCMenuItemFont:文本按钮菜单项(通过文本创建菜单项)
CCMenuItemLabel:文本标签按钮菜单项(通过文本标签创建菜单项)
CCMenuItemToggle:开关按钮菜单项(通过其它类如CCMenuItemImage,CCMenuItemFont,CCMenuItemSprite创建菜单项)
CCMenuItemSprite:精灵按钮菜单项(通过精灵CCSprite创建菜单项)
--开关菜单CCMenuItemToggle是一个容器,可以切换包含的子项(可以是任何的MenuItem对象)。
local function MenuLayer3()
local layer2 = CCLayer:create()
--用CCMenuItemFont创建CCMenuItemToggle 1
CCMenuItemFont:setFontName("American Typewriter")
CCMenuItemFont:setFontSize(18)
local sound = CCMenuItemFont:create("sound")
sound:setPosition(ccp(size.width*0.4,size.height*0.65))
sound:setEnabled(false)
CCMenuItemFont:setFontName("Marker felt")
CCMenuItemFont:setFontSize(34)
local toggle1 = CCMenuItemToggle:create(CCMenuItemFont:create("On"))
toggle1:addSubItem(CCMenuItemFont:create("Off"))
local function menuCallFunc(tag,sender)
print("index ==",tolua.cast(sender,"CCMenuItemToggle"):getSelectedIndex()) --getSelectedIndex()是获取index的方法来做状态判断
end
toggle1:registerScriptTapHandler(menuCallFunc)
toggle1:setPosition(ccp(size.width*0.4,size.height*0.6))
--用CCMenuItemFont创建CCMenuItemToggle 2
CCMenuItemFont:setFontName("American Typewriter")
CCMenuItemFont:setFontSize(18)
local music = CCMenuItemFont:create("music")
music:setPosition(ccp(size.width*0.6,size.height*0.65))
music:setEnabled(false)
CCMenuItemFont:setFontName("Marker felt")
CCMenuItemFont:setFontSize(34)
local toggle2 = CCMenuItemToggle:create(CCMenuItemFont:create("On"))
toggle2:addSubItem(CCMenuItemFont:create("Off"))
toggle2:registerScriptTapHandler(menuCallFunc)
toggle2:setPosition(ccp(size.width*0.6,size.height*0.6))
--用CCMenuItemFont创建CCMenuItemToggle 3
CCMenuItemFont:setFontName("American Typewriter")
CCMenuItemFont:setFontSize(18)
local quality = CCMenuItemFont:create("Quality")
quality:setPosition(ccp(size.width*0.4,size.height*0.4))
quality:setEnabled(false)
CCMenuItemFont:setFontName("Marker felt")
CCMenuItemFont:setFontSize(34)
local toggle3 = CCMenuItemToggle:create(CCMenuItemFont:create("off")) --index = 0
toggle3:setPosition(ccp(size.width*0.4,size.height*0.35))
toggle3:registerScriptTapHandler(menuCallFunc)
toggle3:addSubItem(CCMenuItemFont:create("30%")) --index = 1
toggle3:addSubItem(CCMenuItemFont:create("60%")) --index = 2
toggle3:addSubItem(CCMenuItemFont:create("100%")) --index = 3
toggle3:setSelectedIndex(2) --setSelectedIndex()是设置index的方法来显示当前状态 当前显示60%
--用CCMenuItemSprite创建 CCMenuItemToggle4 依此也可以用CCMenuItemImage就不再举例
local fangyuli_sp1 = CCSprite:create("fangyuli_n.png")
local fangyuli_sp2 = CCSprite:create("fangyuli_d.png")
local fangyuli_item = CCMenuItemSprite:create(fangyuli_sp1,fangyuli_sp2)
local gongjili_sp1 = CCSprite:create("gongjili_n.png")
local gongjili_sp2 = CCSprite:create("gongjili_d.png")
local gongjili_item = CCMenuItemSprite:create(gongjili_sp1,gongjili_sp2)
local level_sp1 = CCSprite:create("level_n.png")
local level_sp2 = CCSprite:create("level_d.png")
local level_item = CCMenuItemSprite:create(level_sp1,level_sp2)
local toggle4 = CCMenuItemToggle:create(fangyuli_item)
toggle4:setPosition(ccp(size.width*0.6,size.height*0.35))
toggle4:registerScriptTapHandler(menuCallFunc)
toggle4:addSubItem(gongjili_item)
toggle4:addSubItem(level_item)
local function goBackCall(tag,sender)
tolua.cast(sender:getParent():getParent():getParent(),"CCLayerMultiplex"):switchTo(0)
end
--go back
local label = CCLabelBMFont:create("go back","bitmapFontTest3.fnt")
local back = CCMenuItemLabel:create(label)
back:setPosition(ccp(size.width*0.5,size.height*0.3))
back:registerScriptTapHandler(goBackCall)
local menu = CCMenu:create()
menu:setPosition(ccp(0,0))
menu:addChild(toggle1)
menu:addChild(sound)
menu:addChild(toggle2)
menu:addChild(music)
menu:addChild(quality)
menu:addChild(toggle3)
menu:addChild(back)
menu:addChild(toggle4)
layer2:addChild(menu)
return layer2
end
示例图片: