当前位置: 代码迷 >> Iphone >> cocos2dx不能重复添加子Node,要如何解决
  详细解决方案

cocos2dx不能重复添加子Node,要如何解决

热度:35   发布时间:2016-04-25 06:32:06.0
cocos2dx不能重复添加子Node,要怎么解决?
篮球的父精灵是运动员,当运动员移动的时候,篮球也跟进移动;当传球的时候,我要重新设置篮球的父精灵:
C/C++ code
void HelloWorld::SetSpriteParent(CCSprite* pSprite,CCNode* pNewParent,int nZOder,int nTag){    if (pSprite->getParent()!=NULL)    {        printf("tag %d remove child tag %d\n",pSprite->getParent()->getTag(),pSprite->getTag());        pSprite->removeFromParentAndCleanup(false);    }    pNewParent->addChild(pSprite,nZOder,nTag);}


先把原父精灵删去,再addChild
球在空中是,我设置球的父精灵是背景图,球传到另一个运动员时,我设置球的父精灵是该运动员
但是执行的时候CCNode::addChild弹出错误了:
CCAssert( child->m_pParent == NULL, "child already added. It can't be added again");

请问要怎么解决?
或者我这样设计是不对的:球是一直要上下弹跳的,运动员移动的时候,球也要移动,并且上下弹跳不变,如果用addChild就自动控制这些移动了

------解决方案--------------------
同一个当然是不能多次添加的,你可以找找CCBantchNode,好像是这么拼的吧,下午回家我看一下。
------解决方案--------------------
http://www.cnblogs.com/cocos2d-x/archive/2012/02/27/2370167.html
  相关解决方案