我正在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);}}
但是当我点击任何数字时。它给了我一个错误,说断言没有调用回调函数失败。 有什么帮助吗?
答案 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)
希望我能为你做更多的事情,但希望我指出你的进步方向