Cocos2d iphone Cocos2d如何从另一个类使用getChildByTag访问CCNode

Cocos2d iphone Cocos2d如何从另一个类使用getChildByTag访问CCNode,cocos2d-iphone,Cocos2d Iphone,有人能帮助我吗?我正在尝试访问驻留在CCLayer子类(Gamel层)中的CCLabelTTF,但我想从另一个玩家类(也是CCLayer)访问它。我想 [self-getChildByTag:DEBUG_标签] 搜索场景并找到与其匹配的对象,并返回指向该对象的指针,因为所有对象都存储在树数据结构中 我可以使用下面的代码通过反复试验访问标签,但如果有人能建议我是否不理解getChildByTag方法,或者是否有一种方法可以在不使用下面的代码的情况下搜索场景中的某个对象,我将不胜感激 CCLabel

有人能帮助我吗?我正在尝试访问驻留在CCLayer子类(Gamel层)中的CCLabelTTF,但我想从另一个玩家类(也是CCLayer)访问它。我想

[self-getChildByTag:DEBUG_标签]

搜索场景并找到与其匹配的对象,并返回指向该对象的指针,因为所有对象都存储在树数据结构中

我可以使用下面的代码通过反复试验访问标签,但如果有人能建议我是否不理解
getChildByTag
方法,或者是否有一种方法可以在不使用下面的代码的情况下搜索场景中的某个对象,我将不胜感激

CCLabelTTF *lbl = (CCLabelTTF *)[[[[CCDirector sharedDirector] runningScene] getChildByTag: GAME_LAYER_TAG] getChildByTag: DEBUG_LABEL_TAG]; 

请注意。

getChildByTag
仅检查调用它的父节点的直接子节点。它不会检查孩子的孩子(孙子,如果你愿意的话)

例如,如果节点层次结构如下所示:

MyCCLayer1->MyCCLayer2->MyCCSprite->MyCCLabel


调用MyCCLayer1只能通过
getChildByTag
调用直接访问MyCCLayer2。反过来,MyCCLayer2可以调用
getChildByTag
获取MyCCSprite,然后MyCCSprite可以调用
getChildByTag
获取MyCCLabel。

感谢您的反馈。通过一些测试,我也得出了同样的结论。只是想验证我的理解是正确的还是我做错了什么。我使用了一些其他的游戏引擎/库,可以搜索整个树结构(Box2D)。也许我是从这个角度出发的,虽然在探测整个树时有一些性能上的影响,但是选项就在那里。