[英]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.