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

时间:2015-04-03 05:00:46

标签: c++ cocos2d-x cocos2d-x-3.0

我正在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);}}

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

1 个答案:

答案 0 :(得分:0)

听起来有些前置条件/​​后置条件在调用某个函数时失败了。由于你正在处理很多对象,我打赌你的问题源于你的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)

希望我能为你做更多的事情,但希望我指出你的进步方向