第1章 Cocos2d-x简介 1
1.1 游戏引擎 1
1.1.1 什么是游戏引擎 1
1.1.2 常见的游戏引擎 2
1.2 Cocos2d引擎 3
1.2.1 Cocos2d引擎家族 3
1.2.2 Cocos2d引擎的主要功能 5
1.3 为什么选择Cocos2d-x 6
1.4 如何学习Cocos2d-x 6
1.4.1 学习前的准备工作 6
1.4.2 关于学习Cocos2d-x的建议 6
1.5 小结 7
第2章 跨平台开发环境搭建 8
2.1 搭建iOS开发环境 8
2.1.1 认识Mac 8
2.1.2 搭建开发环境 9
2.2 搭建Windows开发环境 15
2.3 小结 17
第3章 数据类型与内存管理 18
3.1 回顾C++ 18
3.1.1 数据类型 18
3.1.2 模板与泛型编程 19
3.1.3 STL库 26
3.2 新增数据类型 36
3.2.1 _Integer 36
3.2.2 _Float、_Double、Bool 37
3.2.3 _String 37
3.2.4 _Array 40
3.2.5 _Dictionary 42
3.2.6 _Set 43
3.2.7 Vector 44
3.2.8 Map 45
3.3 内存管理 46
3.3.1 C++内存管理 47
3.3.2 引用计数内存管理 48
3.4 小结 54
第4章 Cocos2d-x基础类 55
4.1 坐标系简介 56
4.1.1 屏幕坐标系 56
4.1.2 OpenGL坐标系 56
4.1.3 节点坐标系 56
4.1.4 世界坐标系 57
4.1.5 锚点 57
4.2 导演类(Director) 57
4.3 节点类(Node) 62
4.4 场景类(Scene) 66
4.4.1 新建场景 67
4.4.2 切换场景 69
4.5 布景层类(Layer) 71
4.5.1 Layer类的使用方法 72
4.5.2 LayerColor 74
4.6 菜单类(Menu) 75
4.7 Cocos2d-x中的文字 79
4.7.1 LabelTTF 80
4.7.2 LabelAtlas 84
4.7.3 LabelBMFont 86
4.8 游戏中的声音 88
4.8.1 声音简介 89
4.8.2 常见的音乐格式 89
4.8.3 平台对声音的支持 90
4.8.4 背景音乐的操作函数 91
4.8.5 音效的操作函数 92
4.8.6 音乐实例 93
4.9 绘制图形 96
4.10 schedule()函数的使用方法 97
4.11 小结 99
第5章 动作和动画 100
5.1 ActionInterval 101
5.1.1 基本动作 101
5.1.2 Sequence 107
5.1.3 DelayTime 107
5.1.4 TargetedAction 108
5.1.5 ProgressTo 108
5.1.6 CardinalSplineTo 109
5.1.7 ActionEase 110
5.1.8 GridBase 111
5.2 ActionIntant 112
5.3 Speed 116
5.4 Follow 116
5.5 ActionManager 117
5.6 与Sprite相关的高级知识 117
5.6.1 Texture2D 117
5.6.2 Sprite 118
5.6.3 TextureCache 118
5.6.4 SpriteBatchNode 119
5.6.5 SpriteFrameCache 121
5.6.6 精灵帧动画 122
5.7 小结 123
第6章 游戏界面设计(GUI) 124
6.1 滑块(ControlSlider) 124
6.2 颜色选择盘(ControlColourPicker) 125
6.3 开关按钮(ControlSwitch) 126
6.4 按钮(ControlButton) 127
6.5 文本框(EditBox) 128
6.6 滚动视图(ScrollView) 129
6.7 表格视图(TableView) 132
6.8 小结 135
第7章 触摸事件 137
7.1 触摸响应机制 137
7.2 触摸的具体实现方法 138
7.3 小结 142
第8章 CocosBuilder使用指南 143
8.1 CocosBuilder简介 143
8.2 CocosBuilder的简单使用方法 144
8.3 CocosBuilder项目设置 146
8.4 ccb文件夹简介 147
8.5 加载及绑定 147
8.5.1 简单地加载一个场景 147
8.5.2 类的绑定 148
8.5.3 按钮、菜单、方法的绑定 149
8.5.4 成员变量的绑定 150
8.5.5 监听绑定过程 151
8.5.6 运行非自动运行的动画 151
8.6 小结 153
第9章 多分辨率屏幕适配 154
9.1 解决方案及其原理 155
9.1.1 概念及约定 155
9.1.2 常用的函数 155
9.1.3 原理及实现 156
9.2 策略选择 158
9.3 总结 159
9.3.1 适配原理总结 159
9.3.2 设置相对位置 160
9.3.3 在游戏中实现多分辨率适配 160
9.4 小结 161
第10章 网络游戏开发 162
10.1 概述 162
10.2 HTTP介绍 163
10.2.1 curl库简介 163
10.2.2 HTTP在引擎中的使用方法 165
10.3 Socket网络通信 168
10.3.1 网络基础知识 168
10.3.2 Socket常用的函数 169
10.3.3 TCP与UDP编程流程 176
10.3.4 基于TCP的网络程序编写 178
10.3.5 基于UDP的网络程序编写 181
10.4 小结 183
第11章 瓦片地图 184
11.1 Tiled软件的使用方法 184
11.2 TMXTiledMap类 187
11.3 TMXLayer类 189
11.4 TMXObjectGroup类 190
11.5 实例 190
11.5.1 编辑地图 191
11.5.2 代码实现 195
11.6 小结 207
第12章 Box2D物理引擎 208
12.1 概述 208
12.2 基本概念 209
12.3 世界 209
12.3.1 创建世界 211
12.3.2 使用世界 211
12.4 刚体 213
12.4.1 创建一个静态刚体 213
12.4.2 创建一个动态刚体 214
12.4.3 物体工厂 215
12.5 形状 215
12.5.1 形状概述 215
12.5.2 形状定义 215
12.6 接触 218
12.6.1 基本概念 218
12.6.2 接触监听器 219
12.6.3 接触筛选 220
12.7 Cocos2d-x 3.X版本物理引擎的使用 220
12.7.1 创建带有物理世界的场景 222
12.7.2 创建边界 222
12.7.3 创建一个精灵 223
12.7.4 物理世界碰撞检测 223
12.8 物理引擎使用实例 224
12.8.1 定义精灵 225
12.8.2 接触监听 226
12.8.3 主场景实现 227
12.9 小结 231
第13章 Lua脚本语言 232
13.1 为什么使用Lua 232
13.2 Lua语法入门 233
13.2.1 类型与数值 233
13.2.2 表达式 235
13.2.3 Lua语句 237
13.2.4 函数 242
13.3 示例项目HelloLua详解 244
13.3.1 Lua与C++的交互 244
13.3.2 Lua脚本引擎的初始化 245
13.4 Lua绑定C++类 245
13.4.1 准备工作 246
13.4.2 开始绑定 247
13.5 小结 251
第14章 CocoStudio使用指南 252
14.1 CocoStudio组件介绍 252
14.1.1 UI编辑器 253
14.1.2 动画编辑器 255
14.1.3 数据编辑器 257
14.1.4 场景编辑器 257
14.2 Cocos2d-x添加CocoStudio库(Visual Studio) 259
14.3 脚本连接CocoStudio 263
14.4 小结 268
第15章 粒子系统 269
15.1 粒子系统简介 269
15.2 粒子系统的生命周期 269
15.3 粒子的相关属性 270
15.4 发射器的相关属性 270
15.5 在代码中使用粒子效果 272
15.6 小结 273
第16章 数据统计工具 274
16.1 Flurry简介 274
16.2 Flurry的使用过程 275
16.3 统计崩溃日志 279
16.4 Flurry与其他统计工具的对比 279
16.5 小结 279
第17章 将iOS项目部署到Android 280
17.1 相关概念 280
17.2 Mac下的环境搭建 281
17.2.1 准备工作 281
17.2.2 配置环境 282
17.2.3 编译 283
17.3 Windows下的环境搭建 284
17.3.1 准备工作 284
17.3.2 配置环境 285
17.3.3 编译 285
17.4 Android真机测试和打包 286
17.4.1 导入 286
17.4.2 真机测试 289
17.4.3 打包 291
17.5 小结 295
第18章 苹果真机测试及发布 296
18.1 开发者注册 296
18.1.1 创建Apple ID账号 296
18.1.2 注册成为苹果开发者 297
18.2 真机调试 304
18.3 小结 316
第19章 SVN版本控制 317
19.1 SVN简介 317
19.2 SVN服务器的配置 318
19.3 在Mac下配置SVN客户端 322
19.4 小结 326
第20章 项目实战:黄金矿工 327
20.1 任务概述 327
20.1.1 项目简介 327
20.1.2 开发背景 327
20.1.3 软件定义 328
20.1.4 开发环境 328
20.2 项目概述 328
20.2.1 产品描述 328
20.2.2 用户要求 328
20.2.3 输入、输出要求 329
20.2.4 游戏中的道具设定 329
20.2.5 系统流程图 329
20.3 需求分析 330
20.3.1 功能需求 330
20.3.2 非功能性需求 331
20.3.3 项目界面需求 331
20.4 用例图 335
20.4.1 开始新游戏 335
20.4.2 继续游戏 336
20.4.3 声音设置 336
20.4.4 得分排名 336
20.4.5 暂停游戏 337
20.4.6 赢取金币 337
20.4.7 使用道具 338
20.4.8 退出游戏 338
20.5 详细设计 339
20.5.1 项目设计 339
20.5.2 时序图 348
20.6 小结 354
附录A Cocos2d-x 3.X常见的宏定义 355