CCNode如何变换父亲节点parent

前端之家收集整理的这篇文章主要介绍了CCNode如何变换父亲节点parent前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

CCNode更换父亲节点,看似很简单,但其实没有那么简单

最初,我的想法就是,直接从父亲节点移除自己,再添加到新的父亲节点就OK

node->removeFromParent();  
newParent->addChild(node); 


但是后来发现,这样会把node释放掉

考虑了下,估计是因为cleanup掉了,所以又试了下面的方法

node->removeFromParentAndCleanup(false);  
newParent->addChild(node);


但是发现还是会把node释放掉,无论怎么做都不行,甚至下面的方法也不行


oldParent->removeChild(node);//oldParent->removeChild(node,false); 
//oldParent->removeChildByTag(nodeTag);
//oldParent->removeChildByTag(nodeTag,false);  
newParent->addChild(node); 

最终找到的可行方案是:


node->getParent()->getChildren()->removeObject(node,false);  
node->setParent(NULL);  
newParent->addChild(node);  
node->release();
原文链接:https://www.f2er.com/cocos2dx/344982.html

猜你在找的Cocos2d-x相关文章