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

参考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 Node*child,int localZOrder)

添加一个子节点到容器中,参数有一个局部Z轴顺序。更多...

virtual void
添加一个子节点到容器中,有Z轴顺序和一个标记。更多...

virtualNode* getChildByTag(int tag)

从容器中得到一个子节点通过它的标记更多...

virtualVector<Node* > & getChildren()

返回子节点数组。更多...

virtual constNode* > & getChildren() const

virtualssize_t getChildrenCount() const

返回子节点的总数更多...

virtual void setParent(Node*parent)

设置父节点Sets the parent node更多...

virtualNode* getParent()

返回指向父节点的指针。更多...

virtual constNode* getParent() const

virtual void removeFromParent()

从父节点中删除一个节点,有一个cleanup参数。 如果这个节点是一个孤节点,那么什么都不会发生。更多...

virtual void removeFromParentAndCleanup(boolcleanup)

从父节点中删除一个节点 如果这个节点是一个孤节点,那么什么都不会发生。更多...

virtual void removeChild(cocos2d-x-3.0/d3/d82/classcocos2d_1_1_node.html" rel="nofollow" style="color:rgb(70,boolcleanup=true)

从容器中删除一个孩子,取决于cleanup参数同时会清除所有的活动的动作。更多...

virtual void removeChildByTag(int tag,162);font-weight:bold;text-decoration:none;" target="_blank">cleanup=true)

一个容器中删除一个孩子通过标记值。取决于cleanup参数同时会清除所有的活动的动作。更多...

virtual void removeAllChildren()

从容器中删除所有的孩子,with a cleanup。更多...

virtual void removeAllChildrenWithCleanup(boolcleanup)

从容器中删除所有的孩子,取决于cleanup参数同时会清除所有的活动的动作。更多...

virtual void reorderChild(
对一个孩子重新排序,设定一个新的z轴的值。更多...

virtual void sortAllChildren()

在绘画之前,排列所有的孩子数组一次,而不是每次添加或者删除子节点时都排序。 这个方法可以大量地提高性能更多...

具体怎么用我也在学习中。但是比较有用的就是通过此,你可以调用节点(Node),一个游戏中的节点树任意一点Node对象都可以通过此方法获得,方便游戏开发。

举个例子

比如一个跑酷游戏scene有三个layer(动画,背景,分数)其中动画layer状态改变了,逻辑上要求另一个分数layer做出相应改变,通过child和parent方法就可以很快速定位到分数layer。

相关文章

    本文实践自 RayWenderlich、Ali Hafizji 的文章《...
Cocos-code-ide使用入门学习地点:杭州滨江邮箱:appdevzw@1...
第一次開始用手游引擎挺激动!!!进入正题。下载资源1:从C...
    Cocos2d-x是一款强大的基于OpenGLES的跨平台游戏开发...
1.  来源 QuickV3sample项目中的2048样例游戏,以及最近《...
   Cocos2d-x3.x已经支持使用CMake来进行构建了,这里尝试...