0

我有一个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);

我被告知孩子不存在

4

1 回答 1

0

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

cocos2d::CCNode* n = cocos2d::CCNode::create()
n->retain();
于 2013-07-03T05:51:44.173 回答