首页 > 代码库 > cocos2dx 如何获得节点的类型
cocos2dx 如何获得节点的类型
1. 需求:在所有子节点中得到是ui::Text类型的节点,并对其进行操作。
2. 解决方案:在根节点Node中有一个如下的函数:
/** * Gets the description string. It makes debugging easier. * @return A string * @js NA * @lua NA */ virtual std::string getDescription() const;
Node中默认的实现:
std::string Node::getDescription() const{ return StringUtils::format("<Node | Tag = %d", _tag);}
我们在ui::Text中找到该函数的实现如下:
std::string Text::getDescription() const{ return "Label";}
修改为:
std::string Text::getDescription() const{ return "cocos2d::ui::Text";}
3.我们在遍历子节点时就可以知道节点的类型是不是cocos2d::ui::Text了
for (Vector<Node*>::iterator it = all_children.begin(); it != all_children.end(); ++it){ Node* child = *it; std::string type_name = child->getDescription(); if (type_name == "cocos2d::ui::Text"){ //DO SOMETHING } }
以上,完。
cocos2dx 如何获得节点的类型
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。