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 に答える