一个寻找cocostudio任意节点的函数
发布时间:2020-12-14 20:11:31 所属栏目:百科 来源:网络整理
导读:.h中: #ifndef __SANGUO_UTILS_H__#define __SANGUO_UTILS_H__#include "cocos2d.h"USING_NS_CC;/*** 在节点树中按名字来寻找节点** @param root 根节点* @param name 节点名称** @return 找到返回对应节点,找不到返回null*/cocos2d::Node* seekChildByNam
.h中: #ifndef __SANGUO_UTILS_H__ #define __SANGUO_UTILS_H__ #include "cocos2d.h" USING_NS_CC; /** * 在节点树中按名字来寻找节点 * * @param root 根节点 * @param name 节点名称 * * @return 找到返回对应节点,找不到返回null */ cocos2d::Node* seekChildByName(cocos2d::Node* root,const std::string& name); template <class RET> RET seekChildByNameWithRetType(cocos2d::Node* root,const std::string& name) { auto ret = dynamic_cast<RET>(seekChildByName(root,name)); CCASSERT(ret,"Can't get Object with the name or the type"); return ret; } #endif .cpp中 #include "utils.h" Node* seekChildByName(Node* root,const std::string& name) { if (!root) { return nullptr; } if (root->getName() == name) { return root; } const auto& arrayRootChildren = root->getChildren(); for (auto& subNode : arrayRootChildren) { auto child = dynamic_cast<Node*>(subNode); if (child) { auto res = seekChildByName(child,name); if (res != nullptr) { return res; } } } return nullptr; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |