繁体   English   中英

在cocos2dx中创建菜单项标签时断言失败

[英]Assertion failed while creating Menu Item Label in cocos2dx

我正在cocos2dx中构建一个游戏,在其中我必须创建菜单项标签。 我正在循环创建它们,然后将它们添加到菜单中:

 auto menuForNumberButtons = Menu::create();
    menuForNumberButtons->setPosition(Vec2(0,0));
    this->addChild(menuForNumberButtons, 3);
    for (int  yy = 0; yy < 3; yy++ )
    {
        for (int xx = 0; xx < 3; xx++) 
        {
            counterOfNumers++;

            MenuItemLabel *numberButton=MenuItemLabel::create(Label::createWithTTF(String::createWithFormat("%d",counterOfNumers)->getCString(), "arial.ttf", visibleSize.width*0.05), this, menu_selector(BSHSuDokuKeypad::numberButtonPressed));
            numberButton->setScaleX(widthOfNumberCell*0.5 / numberButton->getBoundingBox().size.width);
            numberButton->setScaleY(heightOfNumberCell*0.5 / numberButton->getBoundingBox().size.height);
            numberButton->setPosition(Vec2(visibleSize.width*0.005+widthOfNumberCell*xx + numberButton->getBoundingBox().size.width*0.5,  visibleSize.height*0.7+  heightOfNumberCell*yy + numberButton->getBoundingBox().size.height*0.5));
            menuForNumberButtons->addChild(numberButton);}}

但是当我点击任何数字时。 它给我一个错误,指出断言失败而未调用回调函数。 有什么帮助吗?

听起来好像在调用某些函数时某些先决条件/后置条件失败了。 由于您要处理的对象很多,因此我敢打赌,您的问题源于MenuItemLabel创建失败。 我建议对此行进行进一步检查:

MenuItemLabel *numberButton=MenuItemLabel::create(Label::createWithTTF(String::createWithFormat("%d",counterOfNumers)->getCString(), "arial.ttf", visibleSize.width*0.05), this, menu_selector(BSHSuDokuKeypad::numberButtonPressed));

现在,我对这种语言不熟悉,因此我无法向您介绍太多语法,但是通过查看API,我发现这种行格式应该被格式化:

static MenuItemLabel *  create (Node *label, Ref *target, SEL_MenuHandler selector)

希望我能为您做更多,但希望我指出了前进的方向

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM