cocos2d-x要再次添加的已删除子项将不起作用

cocos2d-x要再次添加的已删除子项将不起作用,cocos2d-x,Cocos2d X,精灵不会被看见。发生了什么事?似乎你的孩子在被从现场移除后就被摧毁了。在cocos2d-x中有一个类似于客观c的引用计数系统,它将在从父级移除该精灵后减少该精灵上的引用计数。若计数器达到0值,节点将被销毁。在调用scene->addChild(sprite)之前,确保您的sprite不为null 每次您自己调用retain,都必须在调用后调用release以防止泄漏 删除精灵后需要保留,再次添加后需要释放 sprite->retain(); scene->removeChild(sp

精灵不会被看见。发生了什么事?

似乎你的孩子在被从现场移除后就被摧毁了。在cocos2d-x中有一个类似于客观c的引用计数系统,它将在从父级移除该精灵后减少该精灵上的引用计数。若计数器达到
0
值,节点将被销毁。在调用
scene->addChild(sprite)之前,确保您的sprite不为null


每次您自己调用
retain
,都必须在调用后调用release以防止泄漏

删除精灵后需要保留,再次添加后需要释放

sprite->retain();
scene->removeChild(sprite);
scene->addChild(sprite);
sprite->release();

您想要实现什么。您想在删除一次后再次添加您的精灵吗?谢谢,您知道如何保持它不为空,即使它已被删除?不客气。您可以将此答案标记为正确,以便其他人更容易找到它,但如果我在头文件上声明pointer
Sprite*Sprite
,并在代码上创建此Sprite。在
removeChild
之后,此精灵仍然不是空的。我使用
if(!sprite)
进行检查,但它仍然存在。那么这个指针什么时候释放呢?
sprite->retain();
scene->removeChild(sprite);
scene->addChild(sprite);
sprite->release();
sprite->retain();   
scene->removeChild(sprite);
scene->addChild(sprite);
sprite->release();