scene->removeChild(sprite);//removeChild(sprite, false) and removeChild(sprite, true) all tried
scene->addChild(sprite);
将不会看到精灵。发生了什么事?
答案 0 :(得分:8)
您的孩子在离开现场后似乎只是被摧毁了。在cocos2d-x中有一个类似于Objective-c的引用计数系统,它会在从父级中删除之后减少该精灵的引用计数。如果计数器达到0
值,节点将被销毁。在调用scene->addChild(sprite);
sprite->retain();
scene->removeChild(sprite);
scene->addChild(sprite);
sprite->release();
每当你自己打电话给retain
时,你必须在它之后调用释放以防止泄漏。
答案 1 :(得分:2)
删除精灵后需要保留,再次添加后需要释放。
sprite->retain();
scene->removeChild(sprite);
scene->addChild(sprite);
sprite->release();