内容简介
第一部分 基础篇
第1章 Cocos2d-JS介绍
1.1 Cocos2d引擎家族
1.1.1 Cocos2d的诞生
1.1.2 Cocos引擎家族大事记
1.2 Cocos2d-JS介绍
1.3 引擎目录结构
1.4 小结
1.5 参考资源
第2章 Hello World
2.1 Cocos Console
2.1.1 安装Python
2.1.2 Android环境配置
2.2 创建、编译和运行工程
2.3 HelloWorld的目录结构
2.4 项目在Web和Native上的启动流程
2.5 项目在各平台下的打包以及部署
2.6 js-tests测试工程
2.7 为《保卫萝卜2》项目做准备
2.8 实例——利用Cocos DevTools学习Cocos2d-JS
2.9 小结
2.10 参考资源
第3章 核心框架
3.1 导演
3.1.1 设置帧率
3.1.2 初始化管理器
3.1.3 初始化渲染器
3.1.4 获取屏幕大小
3.1.5 执行游戏主循环
3.2 Cocos2d-JS坐标系
3.3 节点
3.3.1 基础属性
3.3.2 图形属性
3.3.3 其他属性
3.3.4 常用函数
3.4 场景
3.4.1 再探导演——场景管理
3.4.2 切换特效
3.4.3 场景的生命周期
3.5 层
3.6 精灵
3.6.1 通过图片资源创建
3.6.2 通过纹理创建
3.6.3 通过精灵表单创建
3.6.4 创建带有颜色的精灵
3.7 场景树
3.8 标签
3.8.1 CC.LabelTTF字体标签
3.8.2 CC.LabelBMFont位图标签
3.8.3 CC.LabelAtlas字符映射标签
3.8.4 使用编辑器制作FNT字体
3.9 实例——《保卫萝卜2》主页面开发
3.9.1 主页面设计思路
3.9.2 视图设定
3.9.3 代码文件架构
3.9.4 主页面BackgroundLayer开发
3.9.5 主页面MainLayer开发
3.10 小结
3.11 参考资源
第4章 动作模块
4.1 CC.Action
4.2 瞬时动作
4.2.1 CC.place
4.2.2 CC.FlipX和CC.FlipY
4.2.3 CC.Show和CC.Hide
4.2.4 CC.ToggleVisibility
4.2.5 CC.RemoveSelf
4.2.6 CC.CallFun
4.3 持续动作
4.3.1 属性变化动作
4.3.2 视觉特效动作
4.3.3 复合动作
4.4 变速动作
4.4.1 CC.Speed
4.4.2 CC.ActionEase
4.5 实例——让《保卫萝卜2》的主界面动起来
4.6 小结
4.7 参考资源
第5章 事件机制
5.1 事件
5.2 事件管理器
5.2.1 添加事件监听器
5.2.2 删除事件监听器
5.2.3 设置事件监听器的优先级
5.2.4 分发事件
5.3 触摸事件
5.3.1 单点触摸
5.3.2 多点触摸
5.4 加速计事件
5.5 键盘事件
5.6 鼠标事件
5.7 自定义事件
5.8 实例——虚拟摇杆封装
5.9 小结
5.10 参考资源
第6章 音频处理
6.1 Cocos2d-JS中的音频
6.1.1 CC.audioEngine的常用API
6.1.2 各平台下支持的音频格式
6.2 背景音乐何时播放
6.3 实例——给《保卫萝卜2》添加音频
6.4 小结
6.5 参考资源
第7章 屏幕适配
7.1 屏幕适配原理
7.2 如何使用适配模式
7.3 系统预设适配模式
7.3.1 CC.ResolutionPolicy. SHOW_ALL
7.3.2 CC.ResolutionPolicy.NO_BORDER
7.3.3 CC.ResolutionPolicy. EXACT_FIT
7.3.4 CC.ResolutionPolicy.FIXED_HEIGHT
7.3.5 CC.ResolutionPolicy. FIXED_WIDTH
7.4 推荐的适配方案
7.5 小结
7.6 参考资源
第二部分 进阶篇
第8章 数据存储
8.1 CC.sys.localstorage
8.2 JSON文件读取
8.3 plist文件读取
8.4 SQLite实现
8.5 实例——解锁《保卫萝卜2》的“天天向上”玩法
8.6 小结
8.7 参考资源
第9章 粒子系统
9.1 粒子系统概述
9.2 Cocos2d-JS中的粒子系统
9.3 ParticleDesigner编辑器
9.4 ParticleEditor编辑器
9.5 在Cocos2d-JS中使用粒子系统
9.6 小结
9.7 参考资源
第10章 UI控件
10.1 ccui.widget父类
10.2 ccui.Text文本
10.2.1 ccui.Text字体文本
10.2.2 ccui.TextBMFont位图文本
10.2.3 ccui.TextAtlas字符映射文本
10.3 ccui.Button按钮
10.4 ccui.CheckBox复选框
10.5 ccui.Slider滑块
10.6 ccui.ImageView图片视图
10.7 ccui.LoadingBar加载条
10.8 ccui.TextField编辑框
10.9 ccui.Layout布局
10.10 ccui.ScrollView滚动视图
10.11 ccui.PageView分页视图
10.12 ccui.ListView列表视图
10.13 实例——《保卫萝卜2》关卡选择页面的开发
10.14 小结
10.15 参考资源
第11章 性能优化
11.1 对象缓冲池
11.1.1 让我们的类支持cc.pool管理
11.1.2 使用cc.pool管理对象
11.2 批量渲染
11.2.1 Cocos2d-JS中的SpriteBatchNode类
11.2.2 使用SpriteBatchNode
11.3 烘培层
11.4 SpriteSheet资源优化
11.4.1 图片内存计算
11.4.2 TexturePacker
11.4.3 图片资源压缩
11.5 小结
第12章 游戏地图
12.1 瓦片地图原理
12.2 Tiled Map Editor简介
12.3 Tiled Map Editor工作区介绍
12.3.1 工具栏
12.3.2 地图编辑区
12.3.3 迷你地图、对象、图层区
12.3.4 图块、地形区
12.3.5 Cocos2d-JS支持的地图类型
12.3.6 瓦片地图坐标系
12.4 使用Tiled Map Editor制作一个地图
12.4.1 新建地图
12.4.2 新建图块
12.4.3 新建层
12.4.4 编辑地图
12.5 在Cocos2d-JS中使用瓦片地图
12.5.1 cc.TMXTiledMap地图对象
12.5.2 cc.TMXLayer图层对象
12.5.3 cc.TMXObj ectGroup对象组
12.6 小结
12.7 参考资源
第三部分 高级篇
第13章 反射调用
13.1 反射调用概述
13.2 反射调用Objective-C
13.3 反射调用Java
13.4 小结
13.5 参考资源
第14章 Chipmunk物理引擎
14.1 物理概念
14.1.1 刚体
14.1.2 面积
14.1.3 质量
14.1.4 密度
14.1.5 转动惯量
14.1.6 弹性系数
14.1.7 摩擦系数
14.2 Chipmunk中的基本概念
14.2.1 基本类型
14.2.2 Chipmunk的坐标系统
14.2.3 Chipmunk中的基本数据结构
14.3 刚体
14.3.1 动态刚体
14.3.2 静态刚体
14.4 形状
14.4.1 基类cp.shape
14.4.2 圆形
14.4.3 线段
14.4.4 凸多边形
14.5 约束
14.5.1 基类cp.Constraint
14.5.2 Pin Joint
14.5.3 Slide Joint
14.5.4 Pivot Joint
14.5.5 Groove Joint
14.5.6 Damped Spring
14.5.7 DampedRotary Spring
14.5.8 Rotary Limit Joint
14.5.9 Ratchet Joint
14.5.10 Gear Joint
14.5.11 Simple Motor
14.6 空间
14.7 碰撞检测
14.7.1 空间索引
14.7.2 碰撞过滤
14.7.3 碰撞回调
14.7.4 碰撞对
14.8 查询
14.8.1 点查询
14.8.2 线段查询
14.8.3 区域查询
14.9 实例——拖动刚体的实现
14.10 小结
14.11 参考资源
第15章 网络编程
15.1 网络编程相关概念
15.2 TCP/IP参考模型
15.2.1 服务端
15.2.2 客户端
15.2.3 通信协议
15.2.4 端口
15.2.5 URI
15.3 基于HTTP协议的通信
15.3.1 运作方式
15.3.2 XMLHttpRequest对象
15.4 基于WebSocket的通信
15.4.1 Cocos2d-JS中的WebSocket
15.4.2 WebSocket对象常用的属性和方法
15.5 基于SocketIO的通信
15.5.1 获取SocketIO对象
15.5.2 SocketIO的常用方法
15.6 实例——使用Node.js+Socket.IO实现游戏聊天系统
15.6.1 Node.js、Express框架和Socket.IO库的安装
15.6.2 服务端开发
15.6.3 客户端开发
15.7 小结
15.8 参考资源
第16章 JavaSc ript Binding
16.1 Cocos引擎中的脚本绑定框架
16.2 自动绑定
16.2.1 自动绑定简介及其限制
16.2.2 配置绑定环境
16.3 深入探究绑定技术
16.3.1 函数注册
16.3.2 分析C++头文件
16.3.3 绑定规则
16.3.4 绑定模板
16.3.5 转换函数
16.4 绑定自己的C++类
16.4.1 编写要绑定的C++类
16.4.2 生成C++类的自动绑定代码
16.5 实例——绑定SQLite3
16.5.1 下载SQLite3源代码
16.5.2 创建HelloSqlite工程
16.5.3 生成绑定代码
16.5.4 注册绑定
16.5.5 集成到平台中
16.5.6 测试结果
16.6 小结
16.7 参考资源
第四部分 实战篇
第17章 《保卫萝卜2》实战
17.1 关卡选择场景开发
17.1.1 使用瓦片地图编辑器标记关卡按钮坐标
17.1.2 关卡之间的连线开发
17.1.3 关卡按钮特效节点开发
17.2 游戏管理对象GameManager的开发
17.2.1 关卡数值配置
17.2.2 GameManager编写
17.2.3 弹出下一组怪物数据
17.3 游戏玩法场景开发
17.3.1 GamePlayScene开发
17.3.2 背景层GPBackground-Layer开发
17.3.3 UI层GPUILayer开发
17.3.4 菜单层GPMenuLayer开发
17.3.5 游戏玩法层(GPMain-Layer)
17.4 小结