第1篇 开始前的环境搭建 2
第1章 初识Cocos2d-x 2
1.1 我是怎样遇到Cocos2d-x的 2
1.1.1 Cocos2d的历史 3
1.1.2 简单介绍一下Cocos2d-x 4
1.1.3 笔者的个人感受 5
1.2 开始前的准备 6
1.2.1 Visual Studio 2013的安装 6
1.2.2 Cocos集成开发环境的安装 9
1.3 安卓开发环境的搭建 17
1.3.1 JDK的安装 17
1.3.2 ADT的使用 22
1.3.3 如何在真机上运行Cocos2d-x程序 26
1.3.4 多个类的情况 27
1.4 关于本书的一些约定 28
1.5 小结 29
第2篇 Cocos2d-x基础铺垫 32
第2章 Cocos2d-x基础知识学习 32
2.1 在Cocos2d-x中创建一个新的场景 32
2.2 让场景显示出来 35
2.3 Cocos2d-x中的一些概念 37
2.3.1 导演 37
2.3.2 节点 38
2.3.3 场景 39
2.3.4 图层 42
2.3.5 精灵 43
2.4 总结 45
第3章 在屏幕上显示内容 46
3.1 在Cocos2d-x中显示一行文字 46
3.2 在Cocos2d-x中显示图像 52
3.3 在Cocos2d-x中使用菜单 54
3.4 Cocos2d-x中屏幕适配的原理 57
3.5 在Cocos2d-x中播放声音 60
3.6 实战:一个简单的钢琴 63
3.7 小结 65
第4章 实现交互的功能 66
4.1 单点触摸的纸牌游戏 66
4.2 多点触摸的羊驼游戏 70
4.3 鼠标和键盘的加入 73
4.4 在Cocos2d-x中使用加速度传感器 75
4.5 实战:在Cocos2d-x中实现游戏摇杆 78
4.6 小结 84
第5章 让人物动起来 85
5.1 让精灵进行简单的动作 85
5.2 在Cocos2d-x中实现更加复杂的动作 88
5.3 在Cocos2d-x中实现动作的监听 90
5.4 让主角跑起来 92
5.5 用打包后的图片创建动画 93
5.6 实战:利用动画实现人物行走 96
5.7 小结 103
第6章 定时器的原理及使用 104
6.1 定时器的基本使用 104
6.2 定时器的缺陷以及改进 105
6.3 定时器的注册与取消 107
6.4 使用定时器实现触发器 109
6.5 实战:利用定时器优化实现人物行走的效果 110
6.6 实战:实现回合制游戏战斗效果 115
6.7 小结 120
第7章 地图系统的使用 121
7.1 使用图片作为地图 121
7.1.1 实现人物简单行走 122
7.1.2 使用分层的方式来表示路径 124
7.1.3 实现人物的移动 126
7.1.4 一点补充 128
7.2 瓦片地图与地图编辑器 130
7.2.1 获得瓦片地图 131
7.2.2 将地图加载到Cocos2d-x场景中 136
7.2.3 在项目中使用瓦片地图 136
7.3 障碍物的获取 140
7.4 简单介绍一下算法 143
7.4.1 深度优先和广度优先算法 145
7.4.2 地图的化简 147
7.4.3 最短路径算法 151
7.4.4 A星算法 152
7.5 小结 156
第8章 Cocos2d-x中的粒子系统 157
8.1 什么是粒子系统 157
8.2 粒子系统的使用 159
8.3 使用粒子系统创建火焰 162
8.4 使用粒子编辑器 164
8.5 小结 166
第9章 在Cocos2d-x中使用物理引擎 167
9.1 什么是物理引擎 167
9.2 物理引擎中常用的概念 169
9.2.1 世界 170
9.2.2 刚体 170
9.2.3 形状 172
9.2.4 夹具 172
9.2.5 关节 173
9.2.6 碰撞 174
9.3 在Cocos2d-x中使用物理引擎 175
9.4 玩家实现对刚体的操纵 178
9.5 Box2D中关于倍数的设定 181
9.6 向屏幕中加入多个小球 183
9.7 小结 187
第10章 存储和网络 188
10.1 Cocos2d-x中本地信息的存储 188
10.2 Cocos2d-x中的文件系统 191
10.3 Cocos2d-x中弱联网技术的使用 194
10.3.1 通过HTTP协议获取在线信息 195
10.3.2 向服务端发送请求 198
10.4 Cocos2d-x中XML文件的解析 198
10.5 小结 200
第3篇 Cocos2d-x技能提升 202
第11章 高级UI控件 202
11.1 九宫格是个什么东西 202
11.1.1 九宫格简介 202
11.1.2 实现九宫格的效果 204
11.1.3 神奇的Scale9Sprite 207
11.2 Scale9Sprite在按钮中的应用 209
11.3 在Cocos2d-x中使用滑动条 210
11.3.1 自定义SlideBar实现滑动条 210
11.3.2 使用类ControlSlider来实现滑动条的效果 212
11.4 另一种形式的进度条 213
11.5 在游戏中使用开关 216
11.6 小结 218
第12章 学习使用Cocos Studio 219
12.1 Cocos Studio的使用 219
12.1.1 Cocos Studio的作用 219
12.1.2 Cocos Studio中各部分的功能 221
12.1.3 实战:利用Cocos Studio实现登录APP 222
12.2 在Cocos Studio中使用自定义控件 224
12.3 对Cocos Studio制作的按钮进行响应 228
12.4 使用骨骼编辑器制作动画 231
12.4.1 下载谷歌的骨骼动画编辑器 232
12.4.2 实战:使用骨骼动画编辑器实现运动的火柴人 233
12.5 小结 235
第13章 Cocos2d-x中的设计模式 236
13.1 什么是设计模式 236
13.2 设计模式的作用是什么 237
13.3 Cocos2d-x中的设计模式 239
13.3.1 单例模式 239
13.3.2 二段构建模式 241
13.3.3 工厂模式 243
13.3.4 外观模式 245
13.3.5 观察者模式 246
13.3.6 中介者模式 247
13.4 Cocos2d-x中的防御式编程 248
13.5 小结 249
第4篇 Cocos2d-x游戏开发案例实战 252
第14章 2048游戏实例 252
14.1 2048游戏概述 252
14.2 游戏手势的识别 253
14.3 卡片类的定义和实现 255
14.4 卡片消除效果的实现 258
14.5 游戏界面的美化 264
14.5.1 记分牌类的定义 264
14.5.2 卡片背景的改变 266
14.5.3 卡片颜色的设定 268
14.5.4 卡片数值的显示 270
14.6 分数的计算 272
14.7 小结 275
第15章 连连看游戏实战 276
15.1 游戏分析 276
15.2 瓦片地图的制作与方块的显示 278
15.3 游戏中方块的定义与实现 280
15.4 用户操作的逻辑判断 283
15.5 方块连通性的判断 288
15.5.1 没有拐点的直线 288
15.5.2 一个拐点条件下连通性的判断 289
15.5.3 两个拐点情况的判断 291
15.5.4 两点连通性的判断 292
15.6 倒计时条的实现 294
15.7 道具按钮的加入 296
15.8 界面的优化 299
15.9 关卡的选择 301
15.10 小结 305
第16章 实战Popstar 306
16.1 消除类游戏简介 306
16.2 星星的定义和显示 308
16.3 玩家单击事件的获取 310
16.4 使用广度优先算法使星星消去 311
16.4.1 消去四周的星星 312
16.4.2 将连通的星星全部消去 314
16.5 让星星真正消去 315
16.5.1 让星星下落 315
16.5.2 星星的平移 318
16.5.3 一个小bug 319
16.6 游戏逻辑的判断 321
16.7 游戏开始特效与界面的修改 322
16.8 小结 324
第17章 实战纵版射击游戏 325
17.1 纵版射击游戏简介 325
17.2 背景滚动的实现 326
17.3 飞机类的实现 329
17.4 “皮卡丘”跟随玩家操纵 331
17.5 子弹的发射 333
17.6 敌人的创建 337
17.7 不断地创建敌机 340
17.8 敌机发射子弹 342
17.9 碰撞检测与敌机的爆炸 344
17.10 小结 348
第18章 简单的纸牌游戏 349
18.1 项目简介 349
18.2 定义一张纸牌 350
18.3 洗牌和发牌 355
18.3.1 纸牌序列的生成 355
18.3.2 纸牌的分发过程 358
18.4 “玩家类”的定义和实现 361
18.5 玩家和电脑出牌的实现 365
18.5.1 玩家出牌的实现 366
18.5.2 电脑出牌的实现 368
18.5.3 代码的封装 370
18.6 玩家与电脑轮流出牌的实现 371
18.7 实现让玩家按照规则出牌 374
18.8 实现电脑按照游戏规则选牌和出牌 377
18.9 最后来谈谈人工智能与自动机 380
18.9.1 自动机 380
18.9.2 基于深度遍历的方法 380
18.9.3 基于策略的方法 380
18.9.4 基于大数据的方法 381
18.10 小结 381
第19章 最后的一点补充 382
19.1 游戏素材的获取 382
19.2 游戏题材的选择 384
19.3 遇到问题怎么办 386
19.4 游戏如何推广 388
19.5 小结 389