cocos2d-x TestLua 之 CCMenuItemLabel CCMenuItemSprite CCMenuItemFont 菜单类

1.CCMenu是由菜单项CCMenuItem 组成的,通常先创建菜单项,然后使用1个或多个菜单项生成菜单。

2.CCMenuItem子类:

CCMenuItemImage:图片按钮菜单项(通过图片资源创建菜单项)

CCMenuItemFont:文本按钮菜单项(通过文本创建菜单项

CCMenuItemLabel:文本标签按钮菜单项(通过文本标签创建菜单项)

CCMenuItemToggle:开关按钮菜单项(通过其它类如CCMenuItemImage,CCMenuItemFont,CCMenuItemSprite创建菜单项)

CCMenuItemSprite:精灵按钮菜单项(通过精灵CCSprite创建菜单项)
[plain] view plain copy 在CODE上查看代码片 派生到我的代码片
  1. local function MenuLayer2()  
  2.     local layer2 = CCLayer:create()  
  3.     local item3 = nil  
  4.       
  5.     local function item1CallFunc(tag,sender)  
  6.         item3:setEnabled(not item3:isEnabled())  
  7.         item3:stopAllActions()  
  8.     end  
  9.       
  10.     local function item2CallFunc(tag,sender)  
  11.         local multiplexLayer = tolua.cast(layer2:getParent(),"CCLayerMultiplex")  
  12.         multiplexLayer:switchTo(0)  
  13.     end  
  14.       
  15.     local function item3CallFunc(tag,sender)  
  16.       
  17.     end  
  18.       
  19.     --CCLabelBMFont这个类使用之前,需要添加好字体文件,包括一个图片文件 (**.png)和一个字体坐标文件(**.fnt)。  
  20.     local label = CCLabelBMFont:create("song_hui_xiang","bitmapFontTest3.fnt")  
  21.     local item1 = CCMenuItemLabel:create(label)  
  22.     item1:setPosition(ccp(size.width*0.5,size.height*0.8))  
  23.     item1:registerScriptTapHandler(item1CallFunc)  
  24.       
  25.     --CCMenuItemFont  
  26.     CCMenuItemFont:setFontName("Marker Felt") --设置字体类型  
  27.     CCMenuItemFont:setFontSize(28)            --设置字体大小   
  28.     local item2 = CCMenuItemFont:create("-----go back-----")  
  29.     item2:setPosition(ccp(size.width*0.5,size.height*0.5))  
  30.     item2:registerScriptTapHandler(item2CallFunc) --注册触摸事件  
  31.       
  32.     --CCMenuItemSprite  
  33.     local sp1 = CCSprite:create("menuitemsprite.png",CCRectMake(0,23*2,115,23)) --参数1:图片名,参数2:截取menuitemsprite.png的一个对象(x,y,w,h),以图片左上角为起始原点(x,y),向右为宽(w),向下为高(h)  
  34.     local sp2 = CCSprite:create("menuitemsprite.png",CCRectMake(0,23,115,23))  
  35.     local sp3 = CCSprite:create("menuitemsprite.png",CCRectMake(0,0,115,23))  
  36.     item3 = CCMenuItemSprite:create(sp1,sp2,sp3)    --依次为正常显示、按下、不可点击三种状态  
  37.     item3:setPosition(ccp(size.width*0.5,size.height*0.2))  
  38.     item3:registerScriptTapHandler(item3CallFunc)  
  39.     item3:setEnabled(false)  
  40.       
  41.       
  42.     local rotate1 = CCRotateBy:create(3,360) --创建旋转动作  
  43.     local rotate2 = tolua.cast(rotate1:copy():autorelease(),"CCActionInterval") --复制一个rotate1动作  
  44.     local rotate3 = tolua.cast(rotate1:copy():autorelease(),"CCActionInterval")  
  45.       
  46.     item1:runAction(CCRepeatForever:create(rotate1)) --永久执行rotate1动作  
  47.     item3:runAction(CCRepeatForever:create(rotate3))  
  48.       
  49.     local jump = CCJumpBy:create(3,ccp(300,0),20,5) --创建跳跃动作 参数1:是动作经过的时间,参数2:是目标位置(目标位置是相对坐标,以精灵原来的位置为参照坐标),参数3:是跳跃的高度,参数4:是跳跃次数  
  50.     local jump_back = jump:reverse()  
  51.       
  52.     item2:runAction(CCRepeatForever:create(CCSequence:createWithTwoActions(jump,jump_back)))  
  53.     item2:runAction(CCRepeatForever:create(rotate2))  
  54.       
  55.     local menu = CCMenu:create()  --创建CCMenu菜单  
  56.     menu:setPosition(ccp(0,0))  
  57.     menu:addChild(item1) --加入其它菜单项  
  58.     menu:addChild(item2)  
  59.     menu:addChild(item3)  
  60.     layer2:addChild(menu)  
  61.   
  62.     return layer2  
  63. end 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值