篮球的父精灵是运动员,当运动员移动的时候,篮球也跟进移动;当传球的时候,我要重新设置篮球的父精灵:
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就自动控制这些移动了