无法从Cocos2D CCNode中删除子项

时间:2013-07-02 23:50:33

标签: c++ cocos2d-x

我有一个CCLayer。

我从另一个函数创建一个CCNode *,返回它并将其添加到CCLayer。

当我退回去删除它时,我被告知它不存在

cocos2d::CCNode* Class::function() 
{
    cocos2d::CCNode* n = cocos2d::CCNode::create()
    ... I add stuff to it....
    node->setTag(9);
    return node;
}

然后我去其他地方:

mynode = Class::function();
    addChild(mynode, 3);

并准备好删除时:

removeChildByTag(9);

我被告知孩子不存在

我甚至尝试过

mynode = Class::function();
    mynode->setTag(9);
    addChild(mynode, 3);

并准备好删除时:

removeChildByTag(9);

我被告知孩子不存在

1 个答案:

答案 0 :(得分:0)

您需要在正在调用的函数中保留Node,否则在创建函数后,您创建的节点将自动从自动释放池中删除。

cocos2d::CCNode* n = cocos2d::CCNode::create()
n->retain();