第1章 准备 1
1.1 Cocos2d-x简介 1
1.2 Cocos2d-x架构和目录结构 6
1.3 环境搭建 7
1.3.1 Windows开发环境搭建 7
1.3.2 Mac开发环境搭建 11
1.3.3 创建新项目 12
1.3.4 在Android上调试项目 14
1.3.5 打包APK文件 22
第2章 Cocos2d-x常用数据和方法 23
2.1 C++数据类型 23
2.2 Cocos2d-x封装的数据类型 24
2.2.1 布尔型Bool的使用 24
2.2.2 整型Integer的使用 25
2.2.3 浮点型Double、Float的使用 25
2.2.4 字符串String的使用 25
2.2.5 数组Array的使用 26
2.2.6 点Point的使用 27
2.2.7 尺寸Size的使用 28
2.2.8 矩形Rect的使用 29
2.2.9 字典Dictionary的使用 31
2.3 常用宏定义 32
2.3.1 数学相关宏的使用 32
2.3.2 断言宏CCAsset的使用 33
2.3.3 数组遍历宏CCARRAY FOREACH和CCARRAY_FOREACH_REVER SE的使用 33
2.3.4 字典遍历宏CCDICTFOREACH的使用 35
2.3.5 对象创建方法宏CREATE FUNC的使用 36
2.3.6 属性定义宏CC PROPERTY的使用 37
2.3.7 命名空间宏 39
2.4 Cocos2d-x中的坐标和坐标系 39
2.4.1 OpenGL坐标系和屏幕坐标系 39
2.4.2 锚点和位置的使用 40
2.4.3 节点坐标系和世界坐标系的相互转换 42
第3章 Cocos2d-x核心概念 45
3.1 基础节点 46
3.1.1 Node简介 46
3.1.2 Node应用举例之移除节点 47
3.2 相机 47
3.2.1 相机简介 47
3.2.2 使用CCCamera循环缩放点 48
3.3 导演 49
3.3.1 导演Director简介 49
3.3.2 Director常用功能举例 50
3.4 场景 51
3.4.1 场景定义 51
3.4.2 创建显示战斗场景 52
3.4.3 动态切换多个场景 53
3.5 布景 56
3.5.1 布景定义 56
3.5.2 使用Layer模拟Windows Phone主界面 57
3.6 精灵 59
第4章 Cocos2d-x用户界面 61
4.1 文本渲染 61
4.1.1 制作fnt格式字体 62
4.1.2 使用LabelBMFont显示文本 66
4.1.3 使用LabelTTF显示文本 67
4.1.4 使用LabelAtlas显示文本 70
4.2 菜单 71
4.2.1 菜单和菜单项的简单使用 72
4.2.2 使用菜单制作游戏菜单功能 74
4.3 滚动框 80
4.3.1 使用ScrollView显示多页内容 80
4.3.2 监听ScrollView的滚动和缩放事件 82
4.3.3 使用TableView展示多页内容 83
4.3.4 触摸TableView里的菜单来滚动TableView 86
4.4 扩展控件 87
4.4.1 滑动条控件ControlSlider 87
4.4.2 开关控件ControlSwitch 90
4.4.3 取色器控件ControlColourPicker 92
4.4.4 电位计控件ControlPotentiometer 94
4.4.5 步进器控件ControlStepper 95
4.4.6 按钮控件ControlButton 96
4.4.7 Scale9Sprite 99
4.5 使用编辑框制作用户登录界面 100
第5章 Cocos2d-x动作 105
5.1 动作分类 105
5.2 瞬时动作 106
5.2.1 使用FlipX/FlipY实现X/Y翻转 106
5.2.2 使用Hide、Show实现隐藏和显示 108
5.3 延时动作 109
5.3.1 使用MoveTo或者MoveBy实现移动 109
5.3.2 使用RotateTo和RotateBy实现旋转 110
5.3.3 使用JumpTo和JumpBy实现跳跃 113
5.3.4 使用ScaleTo和ScaleBy实现缩放 114
5.3.5 使用SkewTo和SkewBy实现倾斜变形 115
5.3.6 使用CardinalSplineBy和CardinalSplineTo实现曲线运动 117
5.3.7 使用FadeIn和FadeOut实现渐隐渐出 119
5.4 联合动作 120
5.4.1 按先后顺序执行动作 120
5.4.2 同时执行动作 121
5.4.3 逆向执行动作 122
5.4.4 多次重复执行动作 123
5.4.5 延时执行动作 124
第6章 音频处理 125
6.1 音频处理类SimpleAudioEngine 125
6.2 添加控制背景音乐 126
6.2.1 播放背景音乐并调整音量 126
6.2.2 停止播放背景音乐 128
6.2.3 暂停播放背景音乐 128
6.2.4 继续播放背景音乐 128
6.3 添加控制音乐效果 129
6.3.1 播放音乐 129
6.3.2 停止播放音乐 131
6.3.3 暂停播放音乐 131
6.3.4 继续播放音乐 131
6.3.5 停止、暂停、继续播放所有音乐 132
6.4 Cocos2d-x支持的音频格式 133
第7章 Cocos2d-x瓷砖地图 135
7.1 什么是瓷砖地图 135
7.2 使用Tiled制作瓷砖地图 137
7.2.1 安装Tiled 137
7.2.2 制作地图 138
7.3 在游戏中使用瓷砖地图 140
7.3.1 使用TMXTiledMap把瓷砖地图加载到游戏中 140
7.3.2 拖曳TMX地图 141
7.3.3 在TMX地图中添加并移动精灵 142
7.3.4 读写TMX地图中的图层和瓷砖 143
第8章 Cocos2d-x中的事件机制 146
8.1 事件和事件调度 147
8.2 触摸事件 149
8.2.1 单点触摸事件的类和方法 149
8.2.2 单击屏幕移动精灵 150
8.2.3 拖动精灵移动 152
8.2.4 修改监听器的优先级 154
8.2.5 多点触摸事件 156
8.2.6 使用多点触摸实现缩放 157
8.3 鼠标事件 159
8.4 键盘事件 159
8.4.1 键盘事件介绍 159
8.4.2 实例:把键盘输入内容显示在屏幕中 160
8.5 加速计 161
8.5.1 加速计介绍 161
8.5.2 实例:利用加速计控制小球移动 162
第9章 Cocos2d-x本地数据存储 165
9.1 使用UserDefault存储数据 165
9.1.1 UserDefault介绍 165
9.1.2 使用UserDefault存储修改数据 167
9.2 文件 169
9.2.1 文件处理类FileUtils 169
9.2.2 判断文件是否存在 169
9.2.3 设置文件别名 170
9.2.4 获取文件完整路径 172
9.2.5 设置文件搜索路径 174
9.2.6 根据分辨率调用不同的资源 175
9.2.7 向文件中写入数据 176
9.2.8 从文件中读取数据 179
9.2.9 把数据写入plist文件 180
9.2.10 从plist文件读取数据 182
9.3 SQLite存储 183
9.3.1 SQLite简介 183
9.3.2 可视化管理工具SQLiteStudio 185
9.3.3 使用SQLiteStudio添加数据库 186
9.3.4 使用SQLiteStudio添加表和数据 188
9.3.5 使用C语言接口操作SQLite数据库 190
9.3.6 不使用回调查询SQLite数据库 194
第10章 网络编程 197
10.1 HTTP实现网络通信 198
10.1.1 HTTP通信简介及常用类 198
10.1.2 GET方式通信 200
10.1.3 POST方式通信 203
10.2 Socket实现网络通信 204
10.2.1 Socket简介 204
10.2.2 在Cocos2d-x中使用Socket 205
10.3 WebSocket实现网络通信 209
10.3.1 WebSocket简介 209
10.3.2 在Cocos2d-x中使用WebSocket 210
第11章 物理引擎Box2D 215
11.1 Box2D简介 216
11.2 创建Box2D的HelloWorld项目 217
11.2.1 创建一个世界 217
11.2.2 创建一个地面物体 217
11.2.3 创建一个动态物体 219
11.2.4 模拟(Box2D的)世界 219
11.2.5 清理工作 221
11.3 世界b2World 221
11.3.1 b2World简介 221
11.3.2 世界常用功能 222
11.4 物体b2Body 225
11.4.1 b2Body简介 225
11.4.2 物体定义 226
11.4.3 创建物体 228
11.4.4 使用物体 229
11.5 固定装置b2FixtureDef 231
11.5.1 b2FixtureDef简介 231
11.5.2 创建b2FixtureDef 231
11.6 关节 234
11.6.1 关节简介 234
11.6.2 关节定义 235
11.6.3 创建关节 235
11.6.4 关节类型和使用关节 236
11.7 接触 242
11.7.1 接触简介 242
11.7.2 接触监听器 243
11.7.3 接触筛选 244
第12章 纹理和动画 246
12.1 渲染和修改纹理 246
12.1.1 纹理类Texture2D 247
12.1.2 Cocos2d-x支持的纹理格式 249
12.1.3 Cocos2d-x支持的最大纹理尺寸 249
12.1.4 使用RenderTexture保存截屏 250
12.1.5 图片抗锯齿处理方式 251
12.1.6 使用图片缓存 253
12.1.7 制作游戏加载场景 254
12.1.8 使用TexturePacker制作Sprite Sheet 256
12.2 动画 258
12.2.1 帧动画 258
12.2.2 使用帧动画实现英雄打斗 259
12.2.3 Sprite Sheet动画 266
12.2.4 骨骼动画 268
12.2.5 使用CocoStudio制作骨骼动画 269
12.2.6 在项目中调用CocoStudio制作的骨骼动画 273
第13章 使用Cocos2d-x制作2048休闲游戏 275
13.1 准备工作 275
13.2 使用CocoStudio制作UI界面 276
13.3 编写逻辑代码 279
13.3.1 把UI界面添加到游戏界面中 279
13.3.2 添加获取分数控件并设置分数 281
13.3.3 添加数字方块类 281
13.3.4 初始化游戏数据 282
13.3.5 添加按钮功能 284
13.3.6 添加事件监听 285
13.3.7 实现方块上下左右移动 287
13.3.8 添加新的数字块 290
13.3.9 判断游戏是否结束 291
13.3.10 添加游戏介绍界面 293
第14章 使用Cocos2d-x制作水浒卡牌游戏 294
14.1 准备工作 294
14.2 定义游戏数据结构和存储单例 295
14.3 添加登录界面 299
14.4 添加游戏主场景 305
14.5 添加游戏首页 307
14.6 添加英雄卡牌列表界面 311
14.7 添加战斗流程 314
14.8 添加战斗界面 319
14.9 终结 323
附录A 实例代码清单说明 324
附录B Cocos2d-x 3.X主要版本间的区别 328