闲来无事,白白给大家分享一下一种菜单按钮的制作方法
1、CCMenuItemImage + CCMenu
这是图片按钮菜单项,通过指定图片资源来创建菜单项,有点击效果哦,我们举个例子先
//创建图片按钮 CCMenuItemImage* pHome = CCMenuItemImage::create("home1.png", "home2.png", this, menu_selector(HelloWorld::menuHome)); pHome->setPosition(ccp(40, 40)); CCMenu* pMenu = CCMenu::create(pHome, NULL); pMenu->setPosition(CCPointZero); this->addChild(pMenu);
文本菜按钮单项,通过指定文本标签,这个点击会有放大效果哦。先创建一个文本,然后绑在CCMenuItemLabel 上面就可以做按钮了,一CCLable为例,去看例子喽
CCLabelTTF* pLabel = CCLabelTTF::create("button", "Arial", 30);//参数分别是:按钮要显示的文字,字体,字号 CCMenuItemLabel* pBtn = CCMenuItemLabel::create(pLabel) ; pBtn->setPosition(ccp(100, 100)); CCMenu* pMenu = CCMenu::create(pBtn, NULL); pMenu->setPosition(CCPointZero); this->addChild(pMenu);
3、CCMenuItemImage /CCMenuItemFont + CCMenuItemToggle + CCMenu
这种方法创建的图片按钮在点击之后不会有显示效果切换,例如现在显示start,点击之后会显示stop,不在变化,若再次点击,才会变回start。
CCMenuItemFont* start = CCMenuItemFont::create("start"); CCMenuItemFont* stop = CCMenuItemFont::create("stop"); CCMenuItemToggle* toggle = CCMenuItemToggle::createWithTarget(this, menu_selector(MyLayer::show), start, stop, NULL); toggle->setPosition(ccp(100, 100)); CCMenu* menu = CCMenu::create(toggle,NULL); menu->setPosition(CCPointZero); addChild(menu);
ok,几种按钮创建完毕,最后再啰嗦一点,如果当前创建了很多按钮的话,可以最后一起添加。
CCMenu* pMenu = CCMenu::create(pHome, pExit, pPause, pMusic, pSaveScore, NULL); pMenu->setPosition(CCPointZero); this->addChild(pMenu, 2);