cocos2d-x TestLua 之 CCMenuItemLabel CCMenuItemSprite CCMenuItemFont 菜单类

感谢点评与关注,欢迎转载与分享。
勤奋努力,持之以恒!

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

2.CCMenuItem子类:

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

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

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

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

CCMenuItemSprite:精灵按钮菜单项(通过精灵CCSprite创建菜单项)
local function MenuLayer2()
    local layer2 = CCLayer:create()
    local item3 = nil
    
    local function item1CallFunc(tag,sender)
        item3:setEnabled(not item3:isEnabled())
        item3:stopAllActions()
    end
    
    local function item2CallFunc(tag,sender)
        local multiplexLayer = tolua.cast(layer2:getParent(),"CCLayerMultiplex")
        multiplexLayer:switchTo(0)
    end
    
    local function item3CallFunc(tag,sender)
    
    end
    
    --CCLabelBMFont这个类使用之前,需要添加好字体文件,包括一个图片文件 (**.png)和一个字体坐标文件(**.fnt)。
    local label = CCLabelBMFont:create("song_hui_xiang","bitmapFontTest3.fnt")
    local item1 = CCMenuItemLabel:create(label)
    item1:setPosition(ccp(size.width*0.5,size.height*0.8))
    item1:registerScriptTapHandler(item1CallFunc)
    
    --CCMenuItemFont
    CCMenuItemFont:setFontName("Marker Felt") --设置字体类型
    CCMenuItemFont:setFontSize(28)            --设置字体大小 
    local item2 = CCMenuItemFont:create("-----go back-----")
    item2:setPosition(ccp(size.width*0.5,size.height*0.5))
    item2:registerScriptTapHandler(item2CallFunc) --注册触摸事件
    
    --CCMenuItemSprite
    local sp1 = CCSprite:create("menuitemsprite.png",CCRectMake(0,23*2,115,23)) --参数1:图片名,参数2:截取menuitemsprite.png的一个对象(x,y,w,h),以图片左上角为起始原点(x,y),向右为宽(w),向下为高(h)
    local sp2 = CCSprite:create("menuitemsprite.png",CCRectMake(0,23,115,23))
    local sp3 = CCSprite:create("menuitemsprite.png",CCRectMake(0,0,115,23))
    item3 = CCMenuItemSprite:create(sp1,sp2,sp3)    --依次为正常显示、按下、不可点击三种状态
    item3:setPosition(ccp(size.width*0.5,size.height*0.2))
    item3:registerScriptTapHandler(item3CallFunc)
    item3:setEnabled(false)
    
    
    local rotate1 = CCRotateBy:create(3,360) --创建旋转动作
    local rotate2 = tolua.cast(rotate1:copy():autorelease(),"CCActionInterval") --复制一个rotate1动作
    local rotate3 = tolua.cast(rotate1:copy():autorelease(),"CCActionInterval")
    
    item1:runAction(CCRepeatForever:create(rotate1)) --永久执行rotate1动作
    item3:runAction(CCRepeatForever:create(rotate3))
    
    local jump = CCJumpBy:create(3,ccp(300,0),20,5) --创建跳跃动作 参数1:是动作经过的时间,参数2:是目标位置(目标位置是相对坐标,以精灵原来的位置为参照坐标),参数3:是跳跃的高度,参数4:是跳跃次数
    local jump_back = jump:reverse()
    
    item2:runAction(CCRepeatForever:create(CCSequence:createWithTwoActions(jump,jump_back)))
    item2:runAction(CCRepeatForever:create(rotate2))
    
    local menu = CCMenu:create()  --创建CCMenu菜单
    menu:setPosition(ccp(0,0))
    menu:addChild(item1) --加入其它菜单项
    menu:addChild(item2)
    menu:addChild(item3)
    layer2:addChild(menu)

    return layer2
end



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值