原理很简单,新建一个类继承自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://www.1000phone.net/thread-1366-1-2.html
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。