第1章 本书约定 1
1.1 使用实例代码 1
1.2 图示的约定 2
1.2.1 图中的箭头 2
1.2.2 图中的手势 3
1.2.3 图中的圈框 3
1.2.4 类图 4
第2章 JavaScript语言基础 5
2.1 JavaScript开发环境搭建 5
2.1.1 下载WebStorm工具 5
2.1.2 JavaScript运行测试环境 7
2.1.3 HelloJS实例测试 7
2.2 标识符和保留字 12
2.2.1 标识符 12
2.2.2 保留字 12
2.3 常量和变量 12
2.3.1 常量 13
2.3.2 变量 13
2.3.3 命名规范 13
2.4 注释 14
2.5 JavaScript数据类型 15
2.5.1 数据类型 15
2.5.2 数据类型字面量 16
2.5.3 数据类型转换 16
2.6 运算符 18
2.6.1 算术运算符 18
2.6.2 关系运算符 21
2.6.3 逻辑运算符 23
2.6.4 位运算符 24
2.6.5 其他运算符 25
2.7 控制语句 26
2.7.1 分支语句 26
2.7.2 循环语句 30
2.7.3 跳转语句 32
2.8 数组 35
2.9 函数 36
2.9.1 使用函数 36
2.9.2 变量作用域 37
2.9.3 嵌套函数 37
2.9.4 返回函数 38
2.10 JavaScript中的面向对象 40
2.10.1 创建对象 40
2.10.2 常用内置对象 43
2.10.3 原型 45
2.11 Cocos2d-x JS API中JavaScript继承 47
本章小结 50
第3章 Cocos2d-x JS API开发环境搭建 51
3.1 搭建环境 51
3.1.1 Cocos引擎下载和安装 51
3.1.2 Cocos Framework下载和安装 51
3.2 集成开发工具 54
3.2.1 安装WebStorm工具 54
3.2.2 安装Cocos Code IDE工具 55
3.2.3 配置Cocos Code IDE工具 60
本章小结 62
第4章 Cocos2d-x引擎与JS绑定 63
4.1 Cocos2d家谱 63
4.1.1 Cocos2d-x引擎 64
4.1.2 Cocos2d-x绑定JavaScript 65
4.2 第一个Cocos2d-x JS绑定游戏 65
4.2.1 创建工程 65
4.2.2 在Cocos Code IDE中运行 68
4.2.3 在WebStorm中运行 68
4.2.4 工程文件结构 70
4.2.5 代码解释 71
4.2.6 重构HelloJS案例 75
4.3 Cocos2d-x核心概念 77
4.3.1 导演 78
4.3.2 场景 78
4.3.3 层 78
4.4 Node与Node层级架构 79
4.4.1 Node中重要的操作 80
4.4.2 Node中重要的属性 81
4.4.3 游戏循环与调度 83
4.5 Cocos2d-x坐标系 85
4.5.1 UI坐标 85
4.5.2 OpenGL坐标 86
4.5.3 世界坐标和模型坐标 87
本章小结 91
第5章 游戏中文字 92
5.1 使用标签 92
5.1.1 cc.LabelTTF 93
5.1.2 cc.LabelAtlas 94
5.1.3 cc.LabelBMFont 95
5.2 位图字体制作 98
5.2.1 Glyph Designer工具 98
5.2.2 使用Glyph Designer制作位图字体 99
本章小结 103
第6章 菜单 104
6.1 使用菜单 104
6.2 文本菜单 105
6.3 精灵菜单和图片菜单 107
6.4 开关菜单 110
本章小结 112
第7章 精灵 113
7.1 Sprite精灵类 113
7.1.1 创建Sprite精灵对象 113
7.1.2 实例:使用纹理对象创建Sprite对象 114
7.2 精灵的性能优化 116
7.2.1 使用纹理图集 116
7.2.2 使用精灵帧缓存 119
7.3 纹理图集制作 121
7.3.1 TexturePacker工具 121
7.3.2 使用TexturePacker制作纹理图集 123
本章小结 127
第8章 场景与层 128
8.1 场景与层的关系 128
8.2 场景切换 128
8.2.1 场景切换相关函数 129
8.2.2 场景过渡动画 133
8.3 场景的生命周期 134
8.3.1 生命周期函数 134
8.3.2 多场景切换生命周期 135
本章小结 137
第9章 动作和动画 138
9.1 动作 138
9.1.1 瞬时动作 139
9.1.2 间隔动作 145
9.1.3 组合动作 152
9.1.4 动作速度控制 157
9.1.5 回调函数 162
9.2 特效 165
9.2.1 网格动作 165
9.2.2 实例:特效演示 166
9.3 动画 169
9.3.1 帧动画 169
9.3.2 实例:帧动画使用 170
本章小结 172
第10章 用户事件 173
10.1 事件处理机制 173
10.1.1 事件处理机制中3个角色 173
10.1.2 事件管理器 174
10.2 触摸事件 175
10.2.1 触摸事件的时间方面 175
10.2.2 触摸事件的空间方面 176
10.2.3 实例:单点触摸事件 176
10.2.4 实例:多点触摸事件 179
10.3 键盘事件 181
10.4 鼠标事件 183
10.5 加速度计与加速度事件 185
10.5.1 加速度计 185
10.5.2 实例:运动的小球 185
本章小结 188
第11章 AudioEngine音频引擎 189
11.1 Cocos2d-x中音频文件 189
11.1.1 音频文件介绍 189
11.1.2 Cocos2d-x JS API跨平台音频支持 190
11.2 使用AudioEngine引擎 191
11.2.1 音频文件的预处理 191
11.2.2 播放背景音乐 193
11.2.3 停止播放背景音乐 194
11.3 实例:设置背景音乐与音效 196
11.3.1 资源文件编写 196
11.3.2 HelloWorld场景实现 197
11.3.3 设置场景实现 200
本章小结 202
第12章 粒子系统 203
12.1 问题的提出 203
12.2 粒子系统基本概念 204
12.2.1 实例:打火机 205
12.2.2 粒子发射模式 206
12.2.3 粒子系统属性 207
12.3 Cocos2d-x内置粒子系统 209
12.3.1 内置粒子系统 209
12.3.2 实例:内置粒子系统 209
12.4 自定义粒子系统 212
12.5 粒子系统设计工具Particle Designer 216
12.5.1 粒子设置面板 217
12.5.2 使用分享案例 218
12.5.3 粒子的输出 219
本章小结 219
第13章 瓦片地图 220
13.1 地图性能问题 220
13.2 瓦片地图API 222
13.3 使用Tiled地图编辑器 223
13.3.1 新建地图 227
13.3.2 导入瓦片集 228
13.3.3 创建层 229
13.3.4 在普通层上绘制地图 230
13.3.5 在对象层上添加对象 232
13.4 实例:忍者无敌 235
13.4.1 设计地图 236
13.4.2 程序中加载地图 236
13.4.3 移动精灵 238
13.4.4 检测碰撞 240
13.4.5 滚动地图 246
本章小结 249
第14章 物理引擎 250
14.1 使用物理引擎 251
14.2 Chipmunk引擎 251
14.2.1 Chipmunk核心概念 251
14.2.2 Chipmunk物理引擎的一般步骤 252
14.2.3 实例:HelloChipmunk 252
14.2.4 实例:碰撞检测 257
14.2.5 实例:使用关节 260
本章小结 262
第15章 多分辨率屏幕适配 263
15.1 屏幕适配问题的提出 263
15.2 Cocos2d-x屏幕适配 264
15.2.1 三种分辨率 264
15.2.2 分辨率适配策略 265
本章小结 268
第16章 敏捷开发项目实战——迷失航线手机游戏 269
16.1 迷失航线游戏分析与设计 269
16.1.1 迷失航线故事背景 269
16.1.2 需求分析 269
16.1.3 原型设计 270
16.1.4 游戏脚本 271
16.2 任务1:游戏工程的创建与初始化 272
16.2.1 迭代1.1:创建工程 272
16.2.2 迭代1.2:添加资源文件 273
16.2.3 迭代1.3:添加常量文件SystemConst.js 273
16.2.4 迭代1.4:多分辨率适配 275
16.2.5 迭代1.5:配置文件resource.js 276
16.3 任务2:创建Home场景 277
16.3.1 迭代3.1:添加场景和层 277
16.3.2 迭代3.2:添加菜单 279
16.4 任务3:创建设置场景 280
16.5 任务4:创建帮助场景 283
16.6 任务5:游戏场景实现 285
16.6.1 迭代6.1:创建敌人精灵 285
16.6.2 迭代6.2:创建玩家飞机精灵 290
16.6.3 迭代6.3:创建炮弹精灵 291
16.6.4 迭代6.4:初始化游戏场景 293
16.6.5 迭代6.5:游戏场景菜单实现 296
16.6.6 迭代6.6:玩家飞机发射炮弹 298
16.6.7 迭代6.7:炮弹与敌人的碰撞检测 299
16.6.8 迭代6.8:玩家飞机与敌人的碰撞检测 301
16.6.9 迭代6.9:玩家飞机生命值显示 303
16.6.10 迭代6.10:显示玩家得分情况 304
16.7 任务6:游戏结束场景 304
本章小结 307