【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  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。

时间: 2024-07-29 13:13:01

【cocos2dx中Node类getParent和getChildByTag()】学习体会的相关文章

cocos2d-x中Node中重要的属性

cocos2d-x中Node中重要的属性 Node还有两个非常重要的属性:position和anchorPoint. position(位置)属性是Node对象的实际位置.position属性往往还要配合使用anchorPoint属性,为了将一个Node对象(标准矩形图形)精准的放置在屏幕某一个位置上,需要设置该矩形的锚点,anchorPoint是相对于position的比例,默认是(0.5,0.5).我们看看下面的几种情况: 以anchorPoint为(0.5,0.5)为例,这是默认情况. 下

cocos2d-x中Node与Node层级架构

Cocos2d-x采用层级(树形)结构管理场景.层.精灵.菜单.文本.地图和粒子系统等节点(Node)对象.一个场景包含了多个层,一个层又包含多个精灵.菜单.文本.地图和粒子系统等对象.层级结构中的节点可以是场景.层.精灵.菜单.文本.地图和粒子系统等任何对象. 节点的层级结构 这些节点有一个共同的父类Node.Node类是Cocos2d-x最为重要的根类,它是场景.层.精灵.菜单.文本.地图和粒子系统等类的根类.

cocos2dx中node的pause函数(lua)

time:2015/05/14 描述 lua下使用node的pause函数想暂停layer上的所有动画,结果没有效果 1. pause函数 (1)cc.Node:pause 代码: void Node ::pause () { _scheduler-> pauseTarget(this ); _actionManager-> pauseTarget(this ); _eventDispatcher-> pauseEventListenersForTarget(this ); } 分析:

C++中class(类)与继承白话学习笔记

1.class(类) class Drink{//定义饮料类 public://public下面的东西可以被外面访问 char* type;//饮料种类 double price;//饮料价格 double volume;//饮料体积 double currentVolume;//饮料剩余体积 bool isEmpty();//判是否喝完:成员函数(member function) void addDrink(double vol);//添加饮料:成员函数 Drink();//初始化函数,用于初

Cocos2d-x从入门到精通第五课《Cocos2d-x中的Node》

Cocos2d-x中的Node 视频教程地址:http://edu.csdn.net/course/detail/1342/20983?auto_start=1 一.什么是结点 在介绍Cocos2d-x的结点系统之前,我们需要首先做一些启蒙,什么是树? 定义:   一棵树(tree)是由n(n>0)个元素组成的有限集合,其中: (1)每个元素称为结点(node): (2)有一个特定的结点,称为根结点或根(root): (3)除根结点外,其余结点被分成m(m>=0)个互不相交的有限集合,而每个子

《Cocos2d-x游戏开发实战精解》学习笔记2--在Cocos2d-x中显示一行文字

在Cocos2d-x中要显示文字就需要用到Label控件.在3.x版本的Cocos2d中,舍弃了之前版本所使用的LabelTTF.LabelAtlas.LabelBMFont 3个用于显示文字的类,而使用一个新类Label取代.可想而知,Label实际上就是对之前3个类进行重新封装并统一渲染. 提示:实际上老版本的内容在3.x版本中依然是可以使用的. 下面是在Cocos2d-x中显示文字的一个例子,具体完整项目可在源文件本章目录下找到项目ChapterThree01查看. [范例3-1 在Coc

《Cocos2d-x游戏开发实战精解》学习笔记3--在Cocos2d-x中播放声音

<Cocos2d-x游戏开发实战精解>学习笔记1--在Cocos2d中显示图像 <Cocos2d-x游戏开发实战精解>学习笔记2--在Cocos2d-x中显示一行文字 之前的内容主要都是介绍如何在屏幕上显示图像,事实上除了图像之外,音乐的播放也可以被理解为一种显示的方式,本节将学习在Cocos2d-x中播放声音的方法. (1)在HelloWorld.h中对HelloWorld类进行如下定义: class HelloWorld : public Cocos2d::Layer { pu

【转载】cocos2d-x中getParent()的使用

cocos2d-x中getParent()的使用 void CCControlLayer::Colr() { ((ChangeFood *)(this->getParent()))->Run(1); } 1>CCControlLayer是一个层,加载在ChangeFood上面. 2>利用getParent函数可以得到父类的一个NODE型指针,将指针转变为父类类型的,既可以利用这个指针调用父类的函数. 3>这里的关键是要用this去调用getParten()函数,如果用子类的对

cocos2dx中的核心类

一.节点类(Node) 任何要显示在屏幕上的的对象都是结点类,最常见的有场景(Scene),层(Layer),菜单(Menu)精灵(Sprite),菜单类是层的一个子类,层的初始化默认锚点是(0,0),精灵的默认锚点是(0.5,0.5).一个层或一个精灵在它父类上的位置setposition()函数,其实指的是锚点的位置.并且node的旋转,缩放,平移各种action都是基于锚点来进行的. 二.导演类(Director) Director类是cocos2D-x游戏引擎的核心,它用来创建并控制主屏