Cocos2d-x-->CCMenuItem菜单项
来源:互联网 发布:java io详解 编辑:程序博客网 时间:2024/05/21 23:34
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:
0 0
- Cocos2d-x-->CCMenuItem菜单项
- cocos2d-x CCMenuItem菜单项
- cocos2d-x 菜单项 CCMenuItem 居中缩放
- Cocos2d-x初入学堂(5)-->CCMenuItem菜单项
- Cocos2d-x初入学堂 --> CCMenuItem菜单项
- cocos2d-x、CCMenu、CCMenuItem
- Cocos2d-x 带冷却效果的菜单按钮CCMenuItem
- 我的Cocos2d-x学习笔记(十四)菜单(CCMenu)、菜单项(CCMenuItem)及菜单项子类
- cocos2d-x CCMenuItem自动排列
- cocos2d-x 5种常用CCMenuItem
- cocos2d-X 节点(CCMenuItem.h)API
- cocos2d-x 菜单项
- cocos2d-x菜单项
- cocos2d-x:菜单项
- cocos2d-x学习笔记-CCMenu和CCMenuItem详解
- cocos2d-x学习笔记-CCMenu和CCMenuItem详解
- cocos2d-x学习笔记-CCMenu和CCMenuItem详解
- Cocos2d-x学习笔记(十二)CCMenuItem详解
- 非常好的ios内存基础知识
- shell下进行利用mail命令进行邮件的发送
- ASP.NET MD5加密
- KiB、MiB与KB、MB的区别
- segment fault 的调试方法
- Cocos2d-x-->CCMenuItem菜单项
- 微软2014校园招聘笔试试题
- fork与vfork的区别
- 嵌入式动态内存分配过程
- 计算机网络笔试题
- 二叉排序树删除指定结点
- UVA 106 Fermat vs. Pythagoras
- (《剑指Offer》笔记)调整数组顺序使奇数位于偶数前面
- pty/tty设备竞争条件漏洞 (CVE-2014-0196)