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的更多相关文章

  1. Cocos2d html5 笔记 1: overview

    昨天接触到了cocos2d-html5的的东东了, 第一次看其源代码一头雾水,幸好samples目录下面有几个例子,可以从这个入手. MoonWarriors是一个射击类的游戏, 有点像以前玩的雷电, ...

  2. node.js系列笔记之node.js初识《一》

    node.js系列笔记之node.js初识<一> 一:环境说明 1.1 Linux系统CentOS 5.8 1.2 nodejs v0.10.15 1.3 nodejs源码下载地址 htt ...

  3. HTML5笔记3——Web Storage和本地数据库

    上一篇:HTML5笔记2——HTML5音/视频标签详解 Web Storage概述 在HTML5中,除了Canvas元素之外,另一个新增的非常重要的功能是可以再客户端本地保存数据的Web Storag ...

  4. 笔记:Node.js 的 Buffer 缓冲区

    笔记:Node.js 的 Buffer 缓冲区 node.js 6.0 之前创建的 Buffer 对象使用 new Buffer() 构造函数来创建对象实例,但权限很大,可以获得敏感信息,所以建议使用 ...

  5. node的重点学习笔记(1)————node

    node的重点学习笔记(1)----node 提到node就必须提一下他的npm了,npm是世界上最大的开放源代码的生态系统.通俗来说这就如同亚马逊丛林,要啥物种有啥物种,一个巨大的生态圈,里面有一堆 ...

  6. PhantomJS笔记,Node.js集成PhantomJS

    PhantomJS笔记,Node.js集成PhantomJS 转 https://www.linchaoqun.com/html/cms/content.jsp?menu=index&id=1 ...

  7. COCOS2D 学习笔记

    cc.Node.scheduleUpdate:function () * schedules the "update" method.                       ...

  8. css3 和 html5 笔记

    1.css3 ie下大部分不兼容 ie9以下 浏览器低版本不兼容 需要写 -webket-transition:1s -moz-transition: 1s -o-transition:1s tran ...

  9. Html5笔记 表格 布局

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

随机推荐

  1. 捣蛋phpwind控制器注入

    在PwBaseController 里面,会有这个方法的存在 /** * action Hook 注册 * * @param string $registerKey 扩展点别名 * @param Pw ...

  2. DzzOffice1.0 Beta2 全新安装图文教程及界面简单了解

    本文说明:本文档用于帮助您全新安装完整的 DzzOffice Beta版软件.DzzOffice 是一款开源的云存储与应用管理工具,主要用于企业管理阿里云.亚马逊等云存储等空间,把空间可视化分配给成员 ...

  3. ado无法访问数据库问题

    现象:以ADO方式访问数据库的C++程序,在一台计算机上能访问成功,在另一台计算机上却访问不成功,报告不能连接错误,并且这两台计算机都装有ado. 原因:ado版本不对 解决方案:下载KB983246 ...

  4. Codeforces Educational Codeforces Round 15 D. Road to Post Office

    D. Road to Post Office time limit per test 1 second memory limit per test 256 megabytes input standa ...

  5. Context3D 不可用

    打开项目文件夹中的html-template,并找到index.template.html,右键使用TextEditor编辑,在params.allowfullscreen=”true”:后面加上pa ...

  6. LAMP最新源码一键安装脚本

    Linux+Apache+MySQL+PHP (脚本可以选择是否安装+Pureftpd+User manager for PureFTPd+phpMyAdmin+memcache),添加虚拟主机请执行 ...

  7. 关于诺顿身份安全2013独立版(Norton Identity Safe)

    现在身份安全这货好像从诺顿的套装当中独立出来了,出了中文版.其实诺顿的Web信誉做得还是不错的,当然天朝不要有太大期望.只是公认的做web信誉做得最好的应该就是趋势科技和诺顿,所以诺顿的身份安全也许还 ...

  8. ManagementFactory (二) getMemoryMXBean

    MemoryMXBean package cn.zno.outofmomery; import java.lang.management.ManagementFactory; import java. ...

  9. 实现jsp网站添加到收藏夹

    var ctrl = (navigator.userAgent.toLowerCase()).indexOf('mac') != -1 ? 'Command/Cmd': 'CTRL';         ...

  10. Java获取IP地址:request.getRemoteAddr()注意

        在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr() ,这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid等反向代理软件就不能获取到客户 ...