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的主要内容,如果未能解决你的问题,请参考以下文章