2015-08-25 3 views
1
Size visibleSize = Director::getInstance()->getVisibleSize(); 
Vec2 origin = Director::getInstance()->getVisibleOrigin(); 

Vector<MenuItem*> menuItems; 

auto label = Label::createWithTTF("Space Combat", "fonts/Marker Felt.ttf", 24); 
label->setPosition(Vec2(origin.x + visibleSize.width/2, 
         origin.y + visibleSize.height - label->getContentSize().height)); 
this->addChild(label, 1); 

auto closeItem = MenuItemImage::create("CloseNormal.png", "CloseSelected.png", CC_CALLBACK_1(MainMenu::menuCloseCallback, this)); 
closeItem->setPosition(origin.x + visibleSize.width - closeItem->getContentSize().width/2, 
         origin.y + closeItem->getContentSize().height/2); 
menuItems.pushBack(closeItem); 

auto playLabel = Label::createWithTTF("Play", "fonts/Marker Felt.ttf", 24); 
playLabel->setPosition(Vec2(origin.x + visibleSize.width/2, origin.y + visibleSize.height - label->getContentSize().height *2)); 
auto playItem = MenuItemLabel::create(playLabel, CC_CALLBACK_1(MainMenu::menuPlayCallback, this)); 
menuItems.pushBack(playItem); 

auto menu = Menu::create(); 
menu->addChild(closeItem); 
menu->addChild(playItem); 
menu->setPosition(Vec2::ZERO); 
this->addChild(menu, 1); 


auto sprite = Sprite::create("HelloWorld.png"); 
sprite->setPosition(Vec2(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y)); 
this->addChild(sprite, 0); 

return true; 

}MenuItemLabel обратного вызова не работает, никогда не вызывает функцию обратного вызова, но MenuItemImage работает

выше код будет вызывать мой menuCloseCallback когда MenuItemImage щелкнули, но не будет делать то же самое для MenuItemLabel.

ответ

1

Выяснил это. Я позиционировал метку, но пункт меню помещался в положение по умолчанию 0,0 анкера 0,0. Как только я добавил ярлык и позиционировал пункт меню, все было хорошо.

Смежные вопросы