您的位置:首页 > 移动开发 > Cocos引擎

【cocos2dx中Node类getParent和getChildByTag()】学习体会

2014-11-06 11:47 639 查看
参考http://cn.cocos2d-x.org/doc/cocos2d-x-3.0/d3/d82/classcocos2d_1_1_node.html

其中和child、parent有关的成员函数如下:

Children and Parent
virtual void addChild (Node *child)
添加一个子节点到容器内,z-order是0. 更多...
virtual void addChild (Node *child,
int localZOrder)
添加一个子节点到容器中,参数有一个局部Z轴顺序。 更多...
virtual void addChild (Node *child,
int localZOrder, int tag)
添加一个子节点到容器中,有Z轴顺序和一个标记。 更多...
virtual Node * getChildByTag (int
tag)
从容器中得到一个子节点通过它的标记。 更多...
virtual VectorNode *
> & 
getChildren ()
返回子节点数组。 更多...
virtual const VectorNode *
> & 
getChildren ()
const
virtual ssize_t getChildrenCount ()
const
返回子节点的总数 更多...
virtual void setParent (Node *parent)
设置父节点Sets the parent node 更多...
virtual Node * getParent ()
返回指向父节点的指针。 更多...
virtual const Node * getParent ()
const
virtual void removeFromParent ()
从父节点中删除一个节点,有一个cleanup参数。 如果这个节点是一个孤节点,那么什么都不会发生。 更多...
virtual void removeFromParentAndCleanup (bool cleanup)
从父节点中删除一个节点 如果这个节点是一个孤节点,那么什么都不会发生。 更多...
virtual void removeChild (Node *child,
bool cleanup=true)
从容器中删除一个孩子,取决于cleanup参数同时会清除所有的活动的动作。 更多...
virtual void removeChildByTag (int
tag, bool cleanup=true)
从一个容器中删除一个孩子通过标记值。取决于cleanup参数同时会清除所有的活动的动作。 更多...
virtual void removeAllChildren ()
从容器中删除所有的孩子,with a cleanup。 更多...
virtual void removeAllChildrenWithCleanup (bool cleanup)
从容器中删除所有的孩子, 取决于cleanup参数同时会清除所有的活动的动作。 更多...
virtual void reorderChild (Node *child,
int localZOrder)
对一个孩子重新排序,设定一个新的z轴的值。 更多...
virtual void sortAllChildren ()
在绘画之前,排列所有的孩子数组一次,而不是每次添加或者删除子节点时都排序。 这个方法可以大量地提高性能。 更多...
具体怎么用我也在学习中。但是比较有用的就是通过此,你可以调用节点(Node),一个游戏中的节点树任意一点Node对象都可以通过此方法获得,方便游戏开发。
举个例子

比如一个跑酷游戏scene有三个layer(动画,背景,分数)其中动画layer状态改变了,逻辑上要求另一个分数layer做出相应改变,通过child和parent方法就可以很快速定位到分数layer。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: