文章转载 shahdza 的BLOG: http://shahdza.blog.51cto.com/2410787/1550288
与2.x相比,节点类Node的属性和功能做了大幅度的修改与增加。
【Node】
Node类是绝大部分类的父类(并不是所有的类,例如Director类是直接继承Ref类的),如Scene、Layer、Sprite以及精灵集合SpriteBatchNode等等等等的父类都是Node。
Node类包含了一些基本的属性、节点相关、Action动作的执行、以及定时器等相关的操作。
当然Node也有父类,其父类为Ref。
继承关系如下:
一个节点的主要特点:
> 他们可以包含其他的节点对象(addChild, getChildByTag, removeChild, etc)
> 他们可以安排定期的回调(schedule, unschedule, etc)
> 他们可以执行一些动作(runAction, stopAction, etc)
> 子类节点通常意味着(单一的/所有的):
> 重写初始化资源并且可以安排回调
> 创建回调来操作进行的时间
> 重写“draw”来渲染节点
> 节点的属性有:位置、缩放、旋转、倾斜、锚点、内容大小、可见性
下面将介绍一下节点主要常用的一些操作函数,以及新的功能特性。
(1)节点的属性
(2)节点的操作
(3)动作相关Action
(4)定时器相关schedule
(5)整合NodeRBGA类
(6)查找子节点enumerateChildren
(7)渲染顺序zOrder
(8)坐标转换
1、节点的属性
节点的属性有:位置、缩放、旋转、倾斜、锚点、内容大小、可见性。
//
/**
* 位置Position
* 设置节点的坐标(x,y).在OpenGL中的坐标
* 增加3D坐标
* 增加标准化坐标设置
*/
virtual void setPosition(const Vec2 &position); //Vec2坐标
virtual void setPos