天天瞎忙活,QQ:705719110,欢迎来撩!

Cocos2d-x中的Node

iOS开发 随风 379℃ 0评论

节点是cocos2d-x游戏引擎中的重要元素,是其他重要游戏元素的基类,例如,场景Scene,图层Layer,菜单Menu和精灵sprite都是继承节点类Node. Node类包含了一些基本的属性、节点相关、Action动作的执行、以及定时器等相关的操作。 当然Node也有父类,其父类为Ref。

节点的主要特点:

— 他们可以包含其他的节点对象(addChild, getChildByTag, removeChild, etc)
— 他们可以安排定期的回调(schedule, unschedule, etc)
— 他们可以执行一些动作(runAction, stopAction, etc)
— 子类节点通常意味着(单一的/所有的)
— 重写初始化资源并且可以安排回调
— 创建回调来操作进行的时间
— 重写“draw”来渲染节点
— 节点的属性有:位置、缩放、旋转、倾斜、锚点、内容大小、可见性

节点常用的一些操作函数及新的功能特性。

(1)节点的属性: 位置、缩放、旋转、倾斜、锚点、内容大小、可见性

(2)节点的操作:标记、名字、自定义数据、父节点管理、子节点管理、其他操作管理

(3)动作相关Action:运行、暂停、取消等操作

(4)定时器相关schedule:定时器管理,默认定时器、自定义定时器、一次性定时器

(5)整合NodeRBGA类:整合NodeRGBA类,增加颜色、透明度的设置

(6)查找子节点enumerateChildren
用于枚举某个Node节点的子节点,并让名字符合”name通配符”的子节点执行callback函数。且callback函数返回类型应该为一个bool值,并且返回为true时,结束查找

(7)渲染顺序zOrder
控制节点渲染的先后顺序的。
(1)全局Z顺序:GlobalZOrder。所有节点之间对比。
(2)局部Z顺序:LocalZOrder。 兄弟节点之间对比。
且Z顺序越小,最先渲染。
全局Z顺序
> 定义渲染节点的顺序,拥有全局Z顺序越小的节点,最先渲染。
> 假设:两个或者更多的节点拥有相同的全局Z顺序,那么渲染顺序无法保证。唯一的例外是如果节点的全局Z顺序为零,那么场景图顺序是可以使用的。
> 默认的,所有的节点全局Z顺序都是零。这就是说,默认使用场景图顺序来渲染节点。
> 全局Z顺序是非常有用的当你需要渲染节点按照不同的顺序而不是场景图顺序。
> 局限性: 全局Z顺序不能够被拥有继承“SpriteBatchNode”的节点使用。

局部Z顺序
> LocalZOrder是“key”(关键)来分辨节点和它兄弟节点的相关性。
> 父节点将会通过LocalZOrder的值来分辨所有的子节点。如果两个节点有同样的LocalZOrder,那么先加入子节点数组的节点将会显示在后加入的节点的前面。
> 同样的,场景图使用“In-Order(按顺序)”遍历数算法来遍历。并且拥有小于0的LocalZOrder的值的节点是“left”子树(左子树) 所以拥有大于0的LocalZOrder的值得节点是“right”子树(右子树)。

(8)坐标转换
坐标分为两种坐标:
(1)世界坐标:就是相对节点的世界坐标。
(2) 局部坐标:就是相对节点的坐标。

转载请注明:怼码人生 » Cocos2d-x中的Node

喜欢 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址