cocos2d-x中继承CCMenu定义自己的menu
来源:互联网 发布:王心凌honey 知乎 编辑:程序博客网 时间:2024/06/05 02:13
昨天在项目中为了写一个有特殊效果的menu,于是想想,不就是几个action吗,回调一下就ok了,的确这样实现了,关键在于这个项目中实在是灰常多的按钮,写了6、7个后,我吐血了,决定继承CCmenu,自己定义一个,这样就不用每个都写了。
原理很简单,新建一个类继承自CCMenu,重写它的touch事件,加入自己的效果。
bool MyMenu::ccTouchBegan(CCTouch* touch, CCEvent* event){ CC_UNUSED_PARAM(event); if (m_eState != kCCMenuStateWaiting || ! m_bIsVisible) { return false; } for (CCNode *c = this->m_pParent; c != NULL; c = c->getParent()) { if (c->getIsVisible() == false) { return false; } } m_pSelectedItem = this->itemForTouch(touch); if (m_pSelectedItem) { m_eState = kCCMenuStateTrackingTouch; m_pSelectedItem->selected(); //这里加入自己想要的效果。。。。。。。。。。。。。。。。 return true; } return false;}还没有结束,我想要的是让menu里面的item有特效,那么我还应该重写它的menuWithItems方法。
一定要记得改变他的初始化方法,原来的初始化方法返回的是系统的CCMenu,要自己改为返回自己定义的Menu
MyMenu * MyMenu::menuWithItems(CCMenuItem* item, ...){ va_list args; va_start(args,item); MyMenu *pRet = new MyMenu();//这里记得要注意 if (pRet && pRet->initWithItems(item, args)) { pRet->autorelease(); va_end(args); return pRet; } va_end(args); CC_SAFE_DELETE(pRet) return NULL;}MyMenu* MyMenu::menuWithItem(CCMenuItem* item){ return menuWithItems(item, NULL);}
这样你可以自己随意改变里面的m_pSelectedItem,要什么效果,自己写咯。
原创文章,欢迎转载。转载请注明地址:http://blog.csdn.net/yanghuiliu/article/details/6908117
- cocos2d-x中继承CCMenu定义自己的menu
- cocos2d-x中继承CCMenu定义自己的menu
- cocos2d-x中继承CCMenu定义自己的MyMenu,这个是解决优先级的问题
- cocos2d-x如何继承CCMenu并且在触摸函数中加入自己的实现
- cocos2d-x中CCScrollView和CCMenu触摸优先级的解决方案
- cocos2d-x中CCMenu::alignItemsHorizontallyWithPadding方法
- cocos2d-x、CCMenu、CCMenuItem
- cocos2d-x CCMenu 菜单
- Cocos2d-X中Menu的综合运用
- 关于cocos2d-x中CCScrollView和CCMenu触摸优先级的解决方案
- 关于cocos2d-x中CCScrollView和CCMenu触摸优先级的解决方案
- 关于cocos2d-x中CCScrollView和CCMenu触摸优先级的解决方案
- 关于cocos2d-x中CCScrollView和CCMenu触摸优先级的解决方案
- 关于cocos2d-x中CCScrollView和CCMenu触摸优先级的解决方案
- cocos2d-x 中 CCMenu回调函数 调用父类的参数
- cocos2d-x,CCMenu::initWithItems,无语啊
- cocos2d-x CCMenu菜单选项
- cocos2d-x CCMenu菜单选项
- 总结C#保留小数位数
- wish1
- asp控件与html控件的区别
- 使用C#,不使用任何Parse,TryParse,Convert方法,将数字字符串转换成整数
- Java获取WEB目录路径
- cocos2d-x中继承CCMenu定义自己的menu
- 模型元素之间的关联(has-a use-a and have-a)
- C++和ObjectARX开发一例
- ISTQB-AL TA/TTA连载系列12:性能测试vs负载测试vs压力测试
- 基于RDP的声音传输服务程序设计
- vi编辑器的文字说明
- 在Linux下实现comer的TCP/IP协议栈——缓冲池管理和信号灯控制
- vnc协议编码方式
- VNC viewer结构分析