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付いているの変かもね。
最底辺は関数名を付けるのも苦手です。
ディスカッション
コメント一覧
まだ、コメントがありません