cocos2dx不能重复添加子Node,要怎么解决?

sb3day 2012-04-14 06:48:43
篮球的父精灵是运动员,当运动员移动的时候,篮球也跟进移动;当传球的时候,我要重新设置篮球的父精灵:
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就自动控制这些移动了
...全文
330 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
壹只皮卡丘 2012-04-21
  • 打赏
  • 举报
回复
http://www.cnblogs.com/cocos2d-x/archive/2012/02/27/2370167.html
sb3day 2012-04-18
  • 打赏
  • 举报
回复
UP~高手快来啊~迷惑了两周的问题了,项目进行不下去了
sb3day 2012-04-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
同一个当然是不能多次添加的,你可以找找CCBantchNode,好像是这么拼的吧,下午回家我看一下。
[/Quote]您指的是CCSpriteBatchNode吗?这是添加非常多的精灵时需要优化才用到的吧,和我的篮球增加到不同的运动员作为子Node没有关系吧?
Snake_Jay 2012-04-15
  • 打赏
  • 举报
回复
同一个当然是不能多次添加的,你可以找找CCBantchNode,好像是这么拼的吧,下午回家我看一下。

29,027

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
  • iOS
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧