getChildByTag()は、子供だけだよ。
今回は、子供だけの時間です。
うそです。
cocos2d-xの多くのコントロールは、CCNodeを継承しているわけですが、こいつは、getChildByTag()という
関数を持っています。この関数、自分の配下に追加されているタグ付けしたNodeを探すのに便利ですが、
ここから取れるのは子供だけで、孫や曾孫は探してくれません。
ということで子孫、探すやつ作ってみました。
ああ、最底辺のコードなので期待しないように。そして、この関数を使ったことにより、
プロジェクトが破綻して会社クビになり、家族に見捨てられたとしても責任は持てません。
(各種損害については、一切責任を持ちません。)
cocos2d::CCNode* getChildbyTagRecursively(cocos2d::CCNode* target, int tag)
{
CCAssert(target != NULL, "Invalid target");
CCNode *node = target->getChildByTag(tag);
if (node == NULL) {
CCArray* children = target->getChildren();
int cnt = 0;
if (children != NULL) {
for (cnt = 0; cnt < children->count(); ++cnt) {
target = dynamic_cast(children->objectAtIndex(cnt));
node = ::getChildrenRecursively(target, tag);
if (node != NULL) {
break;
}
}
}
}
return node;
}
てか、関数名にChild付いているの変かもね。
最底辺は関数名を付けるのも苦手です。
ディスカッション
コメント一覧
まだ、コメントがありません