bool CCMenuItemLabel::initWithLabel(CCNode* label, CCObject* target, SEL_MenuHandler selector) { CCMenuItem::initWithTarget(target, selector); m_fOriginalScale = 1.0f; m_tColorBackup = ccWHITE; setDisabledColor(ccc3(126,126,126)); this->setLabel(label); setCascadeColorEnabled(true); setCascadeOpacityEnabled(true); return true; }
bool MenuItemLabel::initWithLabel(Node* label, const ccMenuCallback& callback) { MenuItem::initWithCallback(callback); _originalScale = 1.0f; _colorBackup = Color3B::WHITE; setDisabledColor(Color3B(126,126,126)); this->setLabel(label); setCascadeColorEnabled(true); setCascadeOpacityEnabled(true); return true; }
//------------------------------------------------------------------ // // MenuLayerMainMenu // //------------------------------------------------------------------ MenuLayerMainMenu::MenuLayerMainMenu() { _touchListener = EventListenerTouchOneByOne::create(); _touchListener->setSwallowTouches(true); _touchListener->onTouchBegan = CC_CALLBACK_2(MenuLayerMainMenu::onTouchBegan, this); _touchListener->onTouchMoved = CC_CALLBACK_2(MenuLayerMainMenu::onTouchMoved, this); _touchListener->onTouchEnded = CC_CALLBACK_2(MenuLayerMainMenu::onTouchEnded, this); _touchListener->onTouchCancelled = CC_CALLBACK_2(MenuLayerMainMenu::onTouchCancelled, this); _eventDispatcher->addEventListenerWithFixedPriority(_touchListener, 1); // Font Item auto spriteNormal = Sprite::create(s_MenuItem, Rect(0,23*2,115,23)); auto spriteSelected = Sprite::create(s_MenuItem, Rect(0,23*1,115,23)); auto spriteDisabled = Sprite::create(s_MenuItem, Rect(0,23*0,115,23)); auto item1 = MenuItemSprite::create(spriteNormal, spriteSelected, spriteDisabled, CC_CALLBACK_1(MenuLayerMainMenu::menuCallback, this) ); // Image Item auto item2 = MenuItemImage::create(s_SendScore, s_PressSendScore, CC_CALLBACK_1(MenuLayerMainMenu::menuCallback2, this) ); // Label Item (LabelAtlas) auto labelAtlas = LabelAtlas::create("0123456789", "fonts/labelatlas.png", 16, 24, '.'); auto item3 = MenuItemLabel::create(labelAtlas, CC_CALLBACK_1(MenuLayerMainMenu::menuCallbackDisabled, this) ); item3->setDisabledColor( Color3B(32,32,64) ); item3->setColor( Color3B(200,200,255) ); // Font Item auto item4 = MenuItemFont::create("I toggle enable items", [&](Ref *sender) { _disabledItem->setEnabled(! _disabledItem->isEnabled() ); }); item4->setFontSizeObj(20); item4->setFontName("fonts/Marker Felt.ttf"); // Label Item (LabelBMFont) auto label = Label::createWithBMFont("fonts/bitmapFontTest3.fnt", "configuration"); auto item5 = MenuItemLabel::create(label, CC_CALLBACK_1(MenuLayerMainMenu::menuCallbackConfig, this)); // Testing issue #500 item5->setScale( 0.8f ); // Events MenuItemFont::setFontName("fonts/Marker Felt.ttf"); // Bugs Item auto item6 = MenuItemFont::create("Bugs", CC_CALLBACK_1(MenuLayerMainMenu::menuCallbackBugsTest, this)); // Font Item auto item7= MenuItemFont::create("Quit", CC_CALLBACK_1(MenuLayerMainMenu::onQuit, this)); auto item8 = MenuItemFont::create("Remove menu item when moving", CC_CALLBACK_1(MenuLayerMainMenu::menuMovingCallback, this)); auto color_action = TintBy::create(0.5f, 0, -255, -255); auto color_back = color_action->reverse(); auto seq = Sequence::create(color_action, color_back, nullptr); item7->runAction(RepeatForever::create(seq)); auto menu = Menu::create( item1, item2, item3, item4, item5, item6, item7, item8, nullptr); menu->alignItemsVertically(); // elastic effect auto s = Director::getInstance()->getWinSize(); int i=0; for(const auto &child : menu->getChildren()) { auto dstPoint = child->getPosition(); int offset = (int) (s.width/2 + 50); if( i % 2 == 0) offset = -offset; child->setPosition( Vec2( dstPoint.x + offset, dstPoint.y) ); child->runAction( EaseElasticOut::create(MoveBy::create(2, Vec2(dstPoint.x - offset,0)), 0.35f) ); i++; } _disabledItem = item3; item3->retain(); _disabledItem->setEnabled( false ); addChild(menu); menu->setPosition(Vec2(s.width/2, s.height/2)); menu->setScale(0); menu->runAction(ScaleTo::create(1,1)); }