CCNode删除不起作用的Cocos2d

Posted

技术标签:

【中文标题】CCNode删除不起作用的Cocos2d【英文标题】:CCNode remove not working Cocos2d 【发布时间】:2014-06-06 10:19:33 【问题描述】:

由于某种原因,我的 CCNode 上的删除功能在动画运行后无法正常工作。

我在点击时添加一个 CCNode,运行动画然后运行删除功能。

         // loads the Coin
         CCNode* coin = [CCBReader load:@"heros/coin"];
         coin.name =@"coin";
         // position
         coin.position = ccpAdd(_touchNode.position, ccp(0, 0));

         //Add to Parent
         [_touchNode addChild:coin z:-1];

         id action1 = [CCActionMoveTo actionWithDuration:0.7f position:ccpAdd(_touchNode.position, ccp(0, 200))];
         id action2 = [CCActionMoveTo actionWithDuration:0.7f position:ccpAdd(_touchNode.position, ccp(0, 100))];
         CCActionCallFunc *callAfterMoving = [CCActionCallFunc actionWithTarget:self selector:@selector(cleanupSprite:)];
         [coin runAction: [CCActionSequence actions:action1, action2, callAfterMoving, nil]];

使用以下删除函数会产生 This node does not contain the specified child 的崩溃错误

- (void) cleanupSprite:(CCNode*)inSprite

    // call your destroy particles here
    // remove the sprite
    [self removeChild:inSprite cleanup:YES];

使用下面的delete也不行

- (void) cleanupSprite:(CCNode*)inSprite

    // call your destroy particles here
    // remove the sprite
    [self removeChildByName:@"coin" cleanup:YES];

【问题讨论】:

_touchNode 包含硬币,如果我正确阅读了您的代码。 是的,但我只需要取出硬币。我正在查看标签,但它似乎在 cocos2d v3 中不存在。对吗? 【参考方案1】:

self 不包含硬币,_touchNode 包含。在您的回调中执行此操作:

[_touchNode removeChildByName:@"coin" cleanup:YES];

【讨论】:

那很尴尬。我的愚蠢疏忽。谢谢 发生在每个人身上......有时从森林里看不到树:)

以上是关于CCNode删除不起作用的Cocos2d的主要内容,如果未能解决你的问题,请参考以下文章

Cocos2d 委托回调不起作用

Cocos2d 人像模式在 iPhone 上不起作用

Cocos2d FCM 推送通知不起作用

用另一个 CCSprite/CCNode 剪辑 CCSprite/CCNode - Cocos2D

TableView 滑动删除不起作用

孤儿删除不起作用