【问题标题】:MenuItemLabel callback not working, never calls the callback, but the MenuItemImage worksMenuItemLabel 回调不起作用,从不调用回调,但 MenuItemImage 有效
【发布时间】:2015-08-25 23:49:04
【问题描述】:
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;

}

当点击 MenuItemImage 时,上面的代码将调用我的 menuCloseCallback,但不会对 MenuItemLabel 执行相同操作。

【问题讨论】:

    标签: cocos2d-x-3.0


    【解决方案1】:

    想通了。我正在定位标签,但菜单项被放置在默认位置 0,0 锚点 0,0。一旦我添加标签并定位菜单项,一切都很好。

    【讨论】:

      猜你喜欢
      • 2014-09-13
      • 2013-11-20
      • 2018-04-08
      • 2015-11-09
      • 2012-03-19
      • 2012-10-09
      • 2013-06-05
      • 2018-12-17
      • 2015-01-16
      相关资源
      最近更新 更多