sda*_*bet 1 cocos2d-iphone ccnode
据我所知,该CCNode::getChildByTag方法只搜索直接儿童.
但有没有办法在其所有后代层次结构中递归地找到CCNode的子标签?
我正在从CocosBuilder ccb文件加载CCNode,我想知道只知道其标签的子节点(不是它们在层次结构中的位置/级别)
一种方法 - 创建自己的方法.或者使用此方法为CCNode创建类别.看起来像这样的smth
- (CCNode*) getChildByTagRecursive:(int) tag
{
CCNode* result = [self getChildByTag:tag];
if( result == nil )
{
for(CCNode* child in [self children])
{
result = [child getChildByTagRecursive:tag];
if( result != nil )
{
break;
}
}
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
将此方法添加到CCNode类别.您可以在任何所需的文件中创建类别,但我建议仅使用此类别创建单独的文件.在这种情况下,将导入此标头的任何其他对象将能够将此消息发送到任何CCNode子类.
实际上,任何对象都可以发送此消息,但如果不导入标题,它将在编译期间引发警告.