CCMenu
CCMenuItemFont;CCMenuItemImage;CCMenuItemLabel;CCMenuItemSprite;CCMenuItemToggle;
是真正的需要实例化的菜单项。需要addChild到CCMenu对象中去。
示例:
CCMenuItem * item = CCMenuItemFont::create(“Start”); //这里的this表示的是调用者 Item->setTarget(this,menu_selector(MYMenu::menuCallBack)); CCMenu * menu = CCMenu::create(); menu->addChild(item); addChild(menu); |
- CCMenuItem
A CCMenuItemFont
CCMenuItem * font = CCMenuItemFont::create(“Start”,this,menu_selector(MYMenu::menuCallBack)); CCMenu * menu = CCMenu::create(); menu->addChild(item); addChild(menu); |
B CCMenu的坐标系统研究
fontItem->setPosition(ccp(winSize.width – 50,30)); menu->setPosition(CCPointZero); |
CCCMenuItemImage
CCMenuItem *imageItem = CCMenuItemImage::create(“CloseNormal.png”,”CloseSelected.png”); imageItem->setTarget(this,menu_selector(Menu::menuCallBack)); |
D CCMenuItemLabel
CCLabelBMFont *bm = CCLabelBMFont::create("bmFontLabelMenu", "fonts/bitmapFontTest.fnt"); CCMenuItem * labelItem = CCMenuItemLabel::create(bm,menu_selector(MYMenu::menuCallBack)); menu->addChild(labelItem); |
第一个参数为一个label,最后两个参数同上。
E CCMenuItemSprite
CCSprite * normal = CCSprite::create(“gonormal.png”); CCSprite * selected = CCSprite::create(“goselected.png”); CCMenuItemSprite * spriteItem = CCMenuItemSprite::create(normal,selected,menu_selector(MYMenu::menuCallBack)); menu->addChild(spriteItem); |
第一个参数和第二个参数为CCSprite后面的参数,同上。
- CCMenuItemToggle
CCMenuItem *t1 = CCMenuItemFont::create("ON"); CCMenuItem *t2 = CCMenuItemFont::create("OFF"); CCMenuItem *t3 = CCMenuItemFont::create("10%"); CCMenuItem *t4 = CCMenuItemFont::create("50%"); CCMenuItemToggle * toggle = CCMenuItemToggle::createWithTarget(this, menu_selector(T11Menu::menuCallBack),t1,t2,t3,t4,NULL); menu->addChild(toggle); |
第一个和第二个参数为回调函数调用者和回调函数,后面的参数为CCMenuItem.可以实现变化的菜单。
- 如何判断哪个菜单被点
打Tag
CCArray * array = menu->getChildren(); CCObject * obj; int i = 0; CCARRAY_FOREACH(array,obj) { CCMenuItem * item = (CCMenuItem *)obj; item->setTag(i + 1000); i++; } |
找Tag
CCMenuItem * item = (CCMenuItem *)obj; Switch (item->getTag() - 1000) { Case FONT1: CCLog(“CCMenuItemFont”); break; case FONT2: break; case IMAGE: break; case BM: break; case SPRITE: break; case TOGGLE: { int index = ((CCMenuItemToggle *)item)->getSelectedIndex(); CCLog(“index = %d”,index); } break; } |
- 案例说明:
MYMenu.h |