cocos2d-html5 笔记3: Node
Cocos2d采用类似于Dom tree的那种形式来各个部分组织起来。最基本的基类是Node吧,
Node
Node 作为基类,函数很多,我觉得可以分为如下几类,树相关的函数, 一些公共的比较实用的函数, 需要子类实现的接口,还有属性的get, set函数
既然是树,首先要提供子节点的add, insert, remove, get这一大类函数.
作为一个最基本的绘图单元,要考虑scale, rotation, translate, position, BoundingBox这些作为基本几何的属性吧, Zorder 前后的遮挡关系也需要考虑的。 Node里面还有俩个属性,一个是tag, 便于标示和选择Node, 另外一个是userdata, 可以放些附加的数据在这边.
然后就是 把节点给画出来。draw 和visit这两个函数就是干这个的。visit负责去调用子节点的draw和自己的draw函数来把整个树给画出来。在visit这个函数里面 画的时候,考虑了zorder的问题。子类继承的时候,最重要的就是这个draw 函数了吧。:)
Node 还提供了onEnter, OnExit等通知回调函数,在screne 进入和退出的时候会调这个。当子节点被删除的时候会去通知它. 我觉得 从就接口上开说,子类要实现的就是draw, onEnter*, onExit*, update, 这几个函数。
Node提供了一些实用的函数, 为了便于子类的操作,Node还把ActionManager, Scheduler这两个的功能集成了进来。提供了一些接口给子类调用, 这些接口其实就是调用actionManager和schedulerManager 的方法的
子类派生关系

screne
screne很简单,基本上没对Node添加啥功能,它的子类CCTransition, CCTransitionPageDown, CCTransitionProgress提供一些场景切换的效果。
layer
Layer层主要添加了事件处理, 在onEnter的时候把自己注册到touch, mouse, keyboard, accelerometer的dispatcher里面。 在onExit的时候,取消注册:)
menu
menu添加对了子类的align, 并且添加了方法_itemForTouch检测mouse 和touch 这个事件在哪个控件上,然后把事件dispatch到 它上。
spirte
Spirte这个管理了一个texture, 还有bacthMode上的优化。
cocos2d-html5 笔记3: Node的更多相关文章
- Cocos2d html5 笔记 1: overview
昨天接触到了cocos2d-html5的的东东了, 第一次看其源代码一头雾水,幸好samples目录下面有几个例子,可以从这个入手. MoonWarriors是一个射击类的游戏, 有点像以前玩的雷电, ...
- node.js系列笔记之node.js初识《一》
node.js系列笔记之node.js初识<一> 一:环境说明 1.1 Linux系统CentOS 5.8 1.2 nodejs v0.10.15 1.3 nodejs源码下载地址 htt ...
- HTML5笔记3——Web Storage和本地数据库
上一篇:HTML5笔记2——HTML5音/视频标签详解 Web Storage概述 在HTML5中,除了Canvas元素之外,另一个新增的非常重要的功能是可以再客户端本地保存数据的Web Storag ...
- 笔记:Node.js 的 Buffer 缓冲区
笔记:Node.js 的 Buffer 缓冲区 node.js 6.0 之前创建的 Buffer 对象使用 new Buffer() 构造函数来创建对象实例,但权限很大,可以获得敏感信息,所以建议使用 ...
- node的重点学习笔记(1)————node
node的重点学习笔记(1)----node 提到node就必须提一下他的npm了,npm是世界上最大的开放源代码的生态系统.通俗来说这就如同亚马逊丛林,要啥物种有啥物种,一个巨大的生态圈,里面有一堆 ...
- PhantomJS笔记,Node.js集成PhantomJS
PhantomJS笔记,Node.js集成PhantomJS 转 https://www.linchaoqun.com/html/cms/content.jsp?menu=index&id=1 ...
- COCOS2D 学习笔记
cc.Node.scheduleUpdate:function () * schedules the "update" method. ...
- css3 和 html5 笔记
1.css3 ie下大部分不兼容 ie9以下 浏览器低版本不兼容 需要写 -webket-transition:1s -moz-transition: 1s -o-transition:1s tran ...
- Html5笔记 表格 布局
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
随机推荐
- 单源最短路径-Dijkstra算法
1.算法标签 贪心 2.算法描述 具体的算法描述网上有好多,我觉得莫过于直接wiki,只说明一些我之前比较迷惑的. 对于Dijkstra算法,最重要的是维护以下几个数据结构: 顶点集合S : 表示已经 ...
- Python伪开发者对于搜狐云景的测评
Python伪开发者对于搜狐云景的测评 本人是GAE和OpenShift的狂热爱好者,玩过各种国外PaaS.某次想搞个稍微复杂点的Python Web程序,需要比较好的网络传输速度,就试图找前PM(P ...
- SCAU 10678 神奇的异或
10678 神奇的异或 时间限制:1000MS 内存限制:65535K 题型: 编程题 语言: 无限制 Description 在现在这个信息时代,数据是很重要的东西哦~ 很多时候,一条关键的数 ...
- 通过扩展让ASP.NET Web API支持JSONP -摘自网络
同源策略(Same Origin Policy)的存在导致了“源”自A的脚本只能操作“同源”页面的DOM,“跨源”操作来源于B的页面将会被拒绝.同源策略以及跨域资源共享在大部分情况下针对的是Ajax请 ...
- css 简单的 before after 笔记
元素::first-line 段落得第一行样式 元素::first-letter 第一个字母 元素::first-before { content:“mayufo”; } contentd的内容插 ...
- 如何通过Android Studio发布library到jCenter和Maven Central
http://www.jianshu.com/p/3c63ae866e52# 在Android Studio里,如果你想引入任何library到自己的项目中,只需要很简单的在module的build. ...
- 【多线程】JAVA多线程和并发基础面试问答(转载)
JAVA多线程和并发基础面试问答 原文链接:http://ifeve.com/java-multi-threading-concurrency-interview-questions-with-ans ...
- labview图形和图表的类型
http://zone.ni.com/reference/zhs-XX/help/371361L-0118/lvconcepts/types_of_graphs_and_charts/ LabVIEW ...
- LightOJ 1341 - Aladdin and the Flying Carpet (唯一分解定理 + 素数筛选)
http://lightoj.com/volume_showproblem.php?problem=1341 Aladdin and the Flying Carpet Time Limit:3000 ...
- AutoCAD.NET 不使用P/Invoke方式调用acad.exe或accore.dll中的接口(如acedCommand、acedPostCommand等)
使用C#进行AutoCAD二次开发,有时候由于C#接口不够完善,或者低版本AutoCAD中的接口缺少,有些工作不能直接通过C#接口来实现,所以需要通过P/Invoke的方式调用AutoCAD的其他DL ...