Cocos2d HOWTO使用另一个类的getChildByTag访问CCNode

时间:2013-05-05 12:11:33

标签: cocos2d-iphone

有人可以帮助我,我正在尝试访问驻留在CCLayer子类(GameLayer)中的CCLabelTTF,但我想从另一个Player类(也是CCLayer)访问它。我想

[self getChildByTag: DEBUG_LABEL];

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

我可以使用以下代码通过反复试验来访问标签,但是如果有人可以建议我是否不理解getChildByTag方法或者是否有方法在场景中搜索对象,我会很感激不使用下面的代码。

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

请告知。

1 个答案:

答案 0 :(得分:0)

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

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

MyCCLayer1-> MyCCLayer2-> MyCCSprite-> MyCCLabel

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