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 ...
随机推荐
- MVC&&MVP
Classic MVC Classic MVC 大概上世纪七十年代,Xerox PARC的Trygve提出了MVC的概念. 并应用在Smalltalk系统中,为了和其它类型的MVC加以区分,历史上习惯 ...
- select多个字段赋值给多个变量
在存储过程中定义了变量v1 int;v2 int;v3 int;从表tab1选择3个字段f1,f2,f3赋值给这三个变量,要如何写 如果单个变量可以 select f1 into v1 from t ...
- java 开发环境
jdk:包括jre,自己下载即可. 客户端只需安装jre即可. 安装路径:C:\jdk7.0\jdk1.7.0_25\bin (适时更改) 环境变量是从前往后找 测试成功:cmd java ...
- JS获得月最后一天和js得到一个月最大天数
<html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>标题页</title ...
- IOS列表实现动态多列
. //图片列表 NSMutableArray *pictureList; //分组列表 NSMutableArray *indexArr; - (UITableViewCell *)tableVie ...
- 如何调试最新的asp.net mvc源码
vs2013调试 一.源码当前为5.2.0.0,按下面改为5.0.0.1 二./web.config 版本为5.0.0.0 改为5.0.0.1 三.vs2013 x86 本机工具命令提示 sn.exe ...
- JXTA+JavaFX实现的网络黑白棋测试地址
http://www.qhdbaobao.com/dist/secondegg-reversi.html ——————————————————————————————————————————————— ...
- LC并联谐振回路
- How Tomcat Works(二)
我们这些可怜虫,只有沿着大神的思路,这样我们才能进步得更快:因为我们不是跟大神处于同一级别上.所以我这里是参考<How Tomcat Works>这本英文版的大作来理解tomcat的工作原 ...
- Windows操作系统单文件夹下到底能存放多少文件及单文件的最大容量
本文是转自:http://hi.baidu.com/aqgjoypubihoqxr/item/c896921f8c2eaba5feded5f2 最近需要了解Windows中单个文件夹下 ...