cocos2d-x TestLua 之 CCMenuItemImage 菜单类
2013-10-15 00:28
477 查看
感谢点评与关注,欢迎转载与分享。
勤奋努力,持之以恒!
1.CCMenu是由菜单项CCMenuItem 组成的,通常先创建菜单项,然后使用1个或多个菜单项生成菜单。
2.CCMenuItem子类:
CCMenuItemImage:图片按钮菜单项(通过图片资源创建菜单项)CCMenuItemFont:文本按钮菜单项(通过文本创建菜单项)
CCMenuItemToggle:开关按钮菜单项(通过其它类如CCMenuItemImage,CCMenuItemFont,CCMenuItemSprite创建菜单项)
CCMenuItemSprite:精灵按钮菜单项(通过精灵CCSprite创建菜单项)
CCMenuItemLabel:文本标签按钮菜单项(通过文本标签创建菜单项)
local function MenuLayer1() local isHorizontal = true local layer1 = CCLayer:create() local function setMenuHorizontal() for i=0,1 do local menu = layer1:getChildByTag(100+i) menu = tolua.cast(menu,"CCMenu") if i == 0 then menu:alignItemsHorizontally() --水平方向默认间隙排列 menu:setPosition(ccpAdd(ccp(size.width*0.5,size.height*0.5),ccp(0,50))) else menu:alignItemsHorizontallyWithPadding(40) --水平方向以padding间隙排列 menu:setPosition(ccpSub(ccp(size.width*0.5,size.height*0.5),ccp(0,50))) end end end local function setMenuVertical() for i=0,1 do local menu = tolua.cast(layer1:getChildByTag(100+i),"CCMenu") if i==0 then menu:alignItemsVertically() --垂直方向默认间隙排列 menu:setPosition(ccpAdd(ccp(size.width*0.5,size.height*0.5),ccp(100,0))) else menu:alignItemsVerticallyWithPadding(40) --垂直方向以padding间隙排列 menu:setPosition(ccpSub(ccp(size.width*0.5,size.height*0.5),ccp(100,0))) end end end local function playCallFunc(tag,sender) tolua.cast(sender:getParent():getParent():getParent(),"CCLayerMultiplex"):switchTo(0) end local function highCallFunc(tag,sender) local menu = tolua.cast(sender:getParent(),"CCMenu") if menu:getOpacity() == 128 then menu:setOpacity(255) else menu:setOpacity(128) end end local function aboutCallFunc(tag,sender) if isHorizontal == true then setMenuVertical() else setMenuHorizontal() end isHorizontal = not isHorizontal end for i=0,1 do local item1 = CCMenuItemImage:create("btn-play-normal.png","btn-play-selected.png") --参数1:正常状态的图片 参数2:按下去时的图片 参数3:不可点选下的图片 local item2 = CCMenuItemImage:create("btn-highscores-normal.png","btn-highscores-selected.png") local item3 = CCMenuItemImage:create("btn-about-normal.png","btn-about-selected.png") item1:registerScriptTapHandler(playCallFunc) --当这个菜单项被按下时候的回调函数(playCallFunc) item2:registerScriptTapHandler(highCallFunc) item3:registerScriptTapHandler(aboutCallFunc) item1:setScaleX(1.5) --对精灵宽度进行缩放 item2:setScaleX(0.5) item3:setScaleX(0.5) local menu = CCMenu:create() --创建菜单,并加入3个菜单项 menu:addChild(item1) menu:addChild(item2) menu:addChild(item3) layer1:addChild(menu,1,100+i) end setMenuHorizontal() return layer1 end
示例图如下:
图1:
图2:
相关文章推荐
- cocos2d-x TestLua 之 CCMenuItemLabel CCMenuItemSprite CCMenuItemFont 菜单类
- cocos2d-x TestLua 之 CCMenuItemLabel CCMenuItemSprite CCMenuItemFont 菜单类
- CCMenuItemImage 让按钮被点击时显示另一张图片(cocos2d-x基础)
- cocos2d-x 菜单CCMenu和CCMenuItemImage应用实例
- cocos2d-x ——菜单层(CCMenuItemImage)四
- Cocos2d-x ——菜单层(CCMenuItemLabel) 一
- CCMenuItemImageLoader
- cocos2d-x ——菜单层(CCMenuItemFont)二
- Cocos2d-x CCMenuItemSprite按钮图片旋转问题
- cocos2d-x TestLua 之 CCProgressTimer
- cocos2d-x之-CCMenuItemToggle使用方法
- CCMenuItemImage各状态下精灵交换测试
- cocos2d-x CCMenuItem自动排列
- cocos2d-x学习笔记-CCMenu和CCMenuItem详解
- cocos2d-x学习笔记-CCMenu和CCMenuItem详解
- 文本转载【Cocos2D-X 】初窥门径(16)几种常用的 CCMenuItem、自定义Button
- cocos2d-x、CCMenu、CCMenuItem
- cocos2d-x ——菜单层(CCMenuItemFont)二
- CCMenuItemImage使用
- cocos2d-x 菜单项 CCMenuItem 居中缩放