我想在CCNode子类中有一个类似-(void)removeAllChildrenWithTag:(int)tag的方法。你会怎么做?

我在游戏的每个回合中都向该节点添加了一些精灵,回合结束后,我想删除它们。我以为给他们所有相同的标签会很好,所以我可以按标签删除它们。但是,只有一种方法可以删除带有标签的一个孩子。

我知道我可以调用此方法,直到没有孩子离开,但我认为这会很慢。有没有更好的解决方案,例如遍历整个子级并删除每个带有上述标记的子级?我不知道该怎么做,因为您不能在for(* in *)循环中删除任何子级。

希望您能够帮助我。 :)

最佳答案

是的..我认为迭代children数组并删除指定的tag children将是最简单的方法。
这是一些代码。

CCNode *aChild;
while((aChild=[parentNode getChildByTag:aTag]) != nil)
    [parentNode removeChild:aChild cleanup:YES];

关于iphone - Cocos2d RemoveAllChildrenWithTag,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5483788/

10-13 04:02