第1章 开发环境搭建 1
1.1 下载Cocos2d-x 1
1.2 下载安装Python 3
1.3 下载安装Ant 4
1.4 下载安装JDK 5
1.5 下载安装ADT和NDK 6
1.6 在命令行创建多平台项目 7
1.7 在Windows平台下使用Eclipse创建项目 8
1.8 在Windows平台下使用Visual Studio创建项目 10
1.9 在Mac下配置Cocos2d-x开发环境 12
1.10 在Mac下使用Eclipse创建项目 12
1.11 在Mac下使用Xcode创建项目 13
第2章 编程起步 14
2.1 Hello World 14
2.1.1 命令行创建项目 14
2.1.2 项目结构 15
2.1.3 项目执行流程 16
2.1.4 场景类的实现 19
2.2 核心类 22
2.2.1 导演类Director 23
2.2.2 节点类Node 26
2.2.3 场景类Scene 29
2.2.4 图层类Layer 32
2.2.5 精灵类Sprite 34
2.3 坐标系统 35
2.3.1 坐标系 35
2.3.2 AnchorPoint锚点 37
2.4 代码风格 38
2.4.1 类的实例化和初始化 38
2.4.2 类的属性 39
2.4.3 选择器 41
2.5 内存管理 42
2.5.1 内存管理简介 43
2.5.2 AutoReleasePool 46
2.5.3 口诀和范式 48
2.5.4 内存管理宏 49
第3章 雷电项目 50
3.1 雷电项目概述 50
3.1.1 游戏资源 51
3.1.2 图片资源打包 51
3.1.3 项目结构 53
3.1.4 游戏运行界面 54
3.2 游戏启动界面 55
3.3 构建游戏玩家精灵 57
3.4 创建HUD图层 59
3.5 创建游戏主界面 60
3.6 玩家发射子弹 65
3.7 敌机自动移动 66
3.8 玩家子弹和敌机的碰撞检测 67
3.9 敌机发射子弹 67
3.10 玩家和敌机子弹碰撞检测 68
第4章 标签 69
4.1 字体标签的创建和使用 69
4.2 位图标签的创建和使用 72
4.3 字符图集标签的创建和使用 74
第5章 菜单 78
5.1 菜单类的层次关系 78
5.2 Menu菜单类 79
5.3 标签菜单项(MenuItemLabel) 81
5.4 精灵菜单项(MenuItemSprite) 83
5.5 图片菜单项(MenuItemImage) 84
5.6 开关菜单项(MenuItemToggle) 85
第6章 精灵及其相关类 88
6.1 精灵类Sprite 88
6.2 精灵帧类SpriteFrame和精灵帧缓存类SpriteFrameCache 92
6.3 精灵批量节点类SpriteBatchNode 94
6.4 精灵动画类Animation和动画缓存类AnimationCache 96
第7章 事件处理 98
7.1 单点触屏事件 99
7.2 多点触屏事件 104
7.3 鼠标事件 107
7.4 键盘事件 110
7.5 加速度事件 111
第8章 动作 113
8.1 Action和Finite TimeAction的API 113
8.2 动作的工作原理 115
8.3 瞬时动作 118
8.3.1 Place 119
8.3.2 FlipX和FlipY 119
8.3.3 Show和Hide 119
8.3.4 CallFunc 119
8.3.5 RemoveSelf 120
8.4 持续性动作 120
8.4.1 位置变化的动作 120
8.4.2 属性变化的动作 122
8.4.3 视觉特性动作 123
8.4.4 控制动作 124
8.5 复合动作 124
8.5.1 Spawn 124
8.5.2 Sequence 125
8.6 变速动作 125
8.6.1 Speed 125
8.6.2 ActionEase 125
第9章 调度器 128
9.1 调度器的工作原理及其API 128
9.2 调度器的三种实现方式 130
9.2.1 默认调度器 130
9.2.2 自定义调度器 131
9.2.3 单次调度器 132
第10章 图形用户界面 133
10.1 文本 135
10.2 按钮 136
10.3 复选框 139
10.4 滑块 141
10.5 加载条 143
10.6 布局 144
10.7 滚动视图 151
10.8 列表视图 153
10.9 表格视图 158
10.10 编辑框 161
第11章 数据结构和常用类 166
11.1 基本类型封装类CCBool、CCFloat、CCDouble和CCInteger 166
11.2 字符串类CCString 168
11.3 数组CCArray 169
11.4 Set集合 170
11.5 字典Dictionary 171
11.6 基本类型封装类cocos2d::Value 171
11.7 向量类Vector 173
11.8 映射类Map 173
第12章 屏幕适配 175
12.1 FileUtils工具类 175
12.2 屏幕适配的相关接口 180
12.3 屏幕适配的解决方案 181
12.3.1 设计分辨率 181
12.3.2 适配策略 182
第13章 声音效果 187
13.1 音效引擎简介 187
13.2 音效引擎API 188
13.3 音效实例 189
第14章 网络编程 192
14.1 JSON数据解析 192
14.2 XML数据解析 194
14.3 curl 196
14.4 HttpClient 199
14.5 WebSocket 202
第15章 数据存储 205
15.1 UserDefault 205
15.2 SQLite数据库 208
第16章 TILED MAP(瓦片地图) 214
16.1 Tiled Map简介 215
16.2 Tiled Map Editor(瓦片地图编辑器) 215
16.3 Tiled Map API 219
16.4 Tiled Map实例 221
第17章 粒子系统 224
17.1 粒子系统简介 224
17.2 粒子属性 225
17.3 粒子实例 228
17.4 粒子编辑器 233
第18章 物理引擎 236
18.1 Box2D简介 236
18.2 Box2D的基本概念 237
18.3 Hello Box2D 237
18.4 搭建调试环境 241
18.5 Box2D的公共模块(Common) 243
18.6 Box2D碰撞模块(Collision) 245
18.7 Box2D动态模块(Dynamics) 250
18.7.1 夹具(Fixture) 250
18.7.2 物体(Bodies) 252
18.7.3 关节(Joints) 257
18.7.4 接触(Contacts) 264
18.7.5 世界(World) 269
18.8 Cocos2d-x 3.0物理引擎API 273
第19章 常用工具和编辑器 280
19.1 字体编辑器 280
19.1.1 BMFont字体编辑器 280
19.1.2 Hiero字体编辑器 284
19.2 纹理打包编辑器 285
19.2.1 TexturePacker 286
19.2.2 Zwoptex 289
19.3 粒子编辑器 291
19.4 CocoStudio 293
第20章 项目实战——疯狂地鼠 294
20.1 项目模块介绍 294
20.1.1 游戏主菜单 295
20.1.2 游戏主界面 295
20.1.3 游戏结束界面 295
20.1.4 游戏暂停界面 296
20.2 核心类介绍 296
20.3 创建常量Constants 297
20.4 创建系统工具类Util 297
20.5 自定义按钮GameButton 300
20.6 构建游戏主菜单MainMenu 302
20.7 构建游戏主界面Game 305
20.8 构建地鼠精灵类Mole 307
20.9 在界面上布局地鼠 310
20.10 在指定时间间隔内显示地鼠 311
20.11 处理触屏事件 312
20.12 显示玩家积分和生命数 313
20.13 实现弹出对话框 316
20.14 实现暂停功能 319
20.15 实现GAME OVER 321