场景树概念(Scene Graph)

场景树是Cocos2d-JS中用来管理场景中所有元素的一个数据结构,场景树之所以被称为一棵树是因为它将一个场景的所有子结点以树状图的形式组织在一起。

Cocos2d-JS中场景的渲染是通过遍历场景树来做到的,对于每一个节点node,遍历的顺序如下:

  1. 遍历node左边的所有子结点
  2. 访问node节点
  3. 遍历node右边的所有子结点

最先遍历到的节点会被显示在场景的最下层,而最后遍历的节点会被显示在场景的最上层。用一张图来展示这个过程再清晰不过了:

另一点需要注意的是,zIndex为负数的节点在场景树中位于父节点的左边,相反,zIndex为0或者正数的节点在场景树中位于父节点的右边,在构建场景树的时候请时刻留心这点。

构建场景树

在Cocos2d-JS中,所有节点类都继承自cc.Node,包括场景类cc.Scenecc.NodeaddChild函数可以用来为某个节点添加子结点,并一步步构建出场景树。

// 创建一个新场景
var scene = new cc.Scene(); // 添加一个zIndex为-2的子结点,在场景树中,它位于scene的左边,因为它的zIndex为负值
scene.addChild(title_node, -2); // 添加另一个子结点,没有指定zIndex的情况下,zIndex将等于默认值0
scene.addChild(label_node); // 田间一个zIndex为1的子结点,在场景树中,它位于scene的右边,因为它的zIndex大于0
scene.addChild(sprite_node, 1);

Cocos2d-JS场景树的更多相关文章

  1. cc.Node—场景树

    对于cc.Node我分了四个模块学习: 1.场景树,2.事件响应,3.坐标系统,4.Action的使用:在此记录经验分享给大家. 场景树 1: creator是由一个一个的游戏场景组成,通过代码逻辑来 ...

  2. 下拉的DIV+CSS+JS二级树型菜单

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. <4>Cocos Creator基本概念(场景树 节点 坐标 组件 )

    1.场景树 Cocos Creator是由一个一个的游戏场景组成,场景是一个树形结构,场景由 有各种层级关系的节点(下一节有具有介绍)组成: 如创建一个HelloWorld的默认项目NewProjec ...

  4. cocos2d js jsb XMLHttpRequest 中文乱码

    1.首先讲下怎样使用XMLHttpRequest 下面所说的是在cocos2d-x 2.2.2 或者 2.3 版本号中. 首先要明确cocos2d js事实上分两个版本号,一个是html5的版本号,另 ...

  5. cocos2d js的一些tip

    cocos2d-js-v3.2-rc0 cc.director.end();//退出app cc.Application.getInstance().openURL("http://www. ...

  6. cocos2d js ClippingNode 制作标题闪亮特效

    1.效果图: 之前在<Android 高仿 IOS7 IPhone 解锁 Slide To Unlock>中制作了文字上闪亮移动的效果,这次我们来看下怎样在cocos2d js 中做出类似 ...

  7. js无限级树菜单

    以前做网站,树形菜单一般都很简单,自己定义风格样式,简单的js控制,后来原来网上很多文章都在讨论Js树型菜单,看了几个实例,发现这个树比较简单好用. http://hovertree.com/texi ...

  8. JS与树本(复杂)

    <!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>树形 ...

  9. three.js 场景入门

    <!DOCTYPE html> <html> <head> <title>Example 01.02 - First Scene</title&g ...

随机推荐

  1. Android中的Uri.parse()

    1,调web浏览器 Uri myBlogUri = Uri.parse("http://www.baidu.com"); returnIt = new Intent(Intent. ...

  2. Informatica 错误:Cannot convert from SQL type 93 to C type 4

    经验和积累蛮重要!向大神学习! ---------------------------------------------------------------------- Mapping: 在sou ...

  3. BZOJ-1433 假期的宿舍 最大流+基础建图

    网络流练习ing.. 1433: [ZJOI2009]假期的宿舍 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 1748 Solved: 765 [S ...

  4. HDU-1698 JUST A HOOK 线段树

    最近刚学线段树,做了些经典题目来练手 Just a Hook Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (J ...

  5. FireFox插件

    Firebug和YSlow就不说了,太常用了,开发必备.

  6. Codeforces 593B Anton and Lines

    LINK time limit per test 1 second memory limit per test 256 megabytes input standard input output st ...

  7. android:sharedUserId 获取系统权限

    最近在做的项目,有好大一部分都用到这个权限,修改系统时间啊,调用隐藏方法啊,系统关机重启啊,静默安装升级卸载应用等等,刚开始的时候,直接添加权限,运行就报错,无论模拟器还是真机,在logcat中总会得 ...

  8. boost解析json(2)

    "{ "A":1, "B":{ "C":2, "D":3 }, "E":[ {" ...

  9. 在多浏览器使用JS复制内容到剪切板,无需插件

    最近在学习DHTMLX,下载了一些JS源码,使用谷歌浏览器,在学习dhtmlxGrid部分进行复制表格内容时,发现,在线版的可以复制成功,而本地的不可以复制,报类似访问剪切板错误,经查找原因,原来是谷 ...

  10. JAVA命令大全

    1.java.exe:======================运行java程序,这个相信每一位用Java的人知道了. 2.javac.exe:======================编译的Ja ...