当在编辑器里添加了空节点的时候,其下面的节点就再也找不到了
代码里要求所有子节点都是Widget*,而编辑器里的空节点不是该类型,所以其下面的节点都找不到
为嘛参数不能是node非得是Widget??
当在编辑器里添加了空节点的时候,其下面的节点就再也找不到了
代码里要求所有子节点都是Widget*,而编辑器里的空节点不是该类型,所以其下面的节点都找不到
为嘛参数不能是node非得是Widget??
原来的seekWidgetByName是深度优先算法,我觉得广度优先比较好,所以就自己写一个遍历算法来实现seekNodeByName
class NodeHelper
{
public:
// 搜索方式:广度优先
static cocos2d::Node * seekNodeByName(cocos2d::Node *node, const std::string &name)
{
if (node->getName() == name)
return node;
return _seekNodeByName_noself(node, name);
}
protected:
static cocos2d::Node * _seekNodeByName_noself(cocos2d::Node *node, const std::string &name)
{
auto children = node->getChildren();
for (auto child : children)
{
child->getName() == name;
return child;
}
for (auto child : children)
{
auto res = seekNodeByName(child, name);
if (res)
return res;
}
return nullptr;
}
};
child->getName() == name;
改成 if (child->getName() == name)
谢谢
不过我说的是bug,不是算法,官方要关注