如何在 Cocos2d v3 中获取一个类型的孩子

Posted

技术标签:

【中文标题】如何在 Cocos2d v3 中获取一个类型的孩子【英文标题】:How to get children of a type in Cocos2d v3 【发布时间】:2014-02-07 12:21:18 【问题描述】:

使用新的 Cocos2D v3 获取具有特定名称的子数组的正确方法是什么?

getChildByTag 不再支持,getChildByName 只返回一个节点。

【问题讨论】:

getChildByTag 也只返回一个节点(第一个带有标签的节点)。然后,如果您想要多个带有标签的孩子,则必须遍历 children 数组。 您好,问题是指 Cocos2d-iphone 的第 3 版。不再支持标签。我可以手动递归循环所有孩子并检查,当然。孩子的获取似乎在v2.1中被广泛使用并且非常有用,这就是为什么我认为在v3中有类似的机制。显然这种方式不再受欢迎,使用 UIResponder 方法似乎是特权。 【参考方案1】:

根据official documentation of Cocos2d v3.4,你可以通过self.children从CCNode类中获取所有子节点,并在FOR-EACH LOOP中遍历它们来匹配name属性,得到想要的子节点。

for (CCNode* child in self.children)

    if ([child.name isEqualToString:@"theSprite"])
          
        // do stuff here ...
    

【讨论】:

感谢您的回答。当我问这个问题时,这不可用。不过,它可能会帮助一些人。

以上是关于如何在 Cocos2d v3 中获取一个类型的孩子的主要内容,如果未能解决你的问题,请参考以下文章

如何在Cocos2D v3.x中正确推送和弹出场景

如何在 Cocos2d v3 中设置 CCTextField

Cocos2D v3.4.9粒子效果不能显示的原因分析及解决办法

Cocos2D v3 CCParallaxNode 滚动无法让玩家保持焦点

cocos2d - 已经添加了孩子。无法再次添加

Cocos2d V3 和 Spritebuilder - 时间轴动画不运行后续时间