addchild报错问题

//加入英雄飞机
HeroPlane *heroPlane = HeroPlane::getInstance(); //单例
this->addChild(heroPlane);
    这两句是在主场景的init里面的

当主场景游戏结束时,我会跳转到另外一个结算场景,可以点击再来一次,重新加载主场景,然而每次执行到
this->addChild(heroPlane);就会崩溃。。。百思不得其解
我跳转之前用了removeAllChildren,没有效果。

用的cocos2d-x3.17和VS2015,求大神指点

我仔细查了下,是在这个地方
void Node::addChild(Node *child, int localZOrder, int tag)
{
CCASSERT( child != nullptr, “Argument must be non-nil”);
CCASSERT( child->_parent == nullptr, “child already added. It can’t be added again”); //就是这一句出问题了

addChildHelper(child, localZOrder, tag, "", true);

}
报错显示child already added. It can’t be added again
但是最后我明明移除了所有的child也没用

:joy:

是在同一帧内remove然后又addchild的吗,remove掉后在下一帧再addchild

因为你这个是个单利

所以你需要在游戏结束时单独释放他

不是的,我在游戏结束时将他移除了,屏幕上也确实移除了,然后有个四秒的延迟动画,之后切换到结束场景,在结束场景里点击重新开始,调用游戏场景就出问题了