《Cocos2D-x权威指南》
基本信息
作者: 满硕泉
出版社:机械工业出版社
ISBN:9787111419136
上架时间:2013-4-15
出版日期:2013 年4月
开本:16开
页码:384
版次:1-1
内容简介
计算机书籍
《cocos2d-x权威指南》是目前coco2d-x领域内容较为全面、系统和极具实战性的一本著作,也是技术版本最新的一本著作。由国内资深的游戏开发工程师和移动应用开发工程师撰写。书中不仅系统讲解了cocos2d-x的功能特性、使用方法、技术要点、高级知识、开发技巧、最佳实践和性能优化,还通过精心设计的游戏案例详细讲解了cocos2d-x游戏设计与开发的完整过程,极具启发性和可操作性。更为重要的是,本书将游戏开发人员应该掌握的游戏开发思想也融入了其中。
全书共16章,分为4个部分:准备篇(第1~2章)系统介绍了cocos2d-x的核心概念、主要功能,以及它在windows、android、ios等平台下的安装、配置、交叉编译环境的搭建,为后面的开发做准备;基础篇(第3~10章)重点讲解了cocos2d-x的功能特性、使用方法、技术要点,包括cocos2d-x中的核心类、动作、动画、特效、文字和字体、事件处理机制、地图、声音以及物理引擎等内容,具体结合cocos2d-x自带的tests实例进行讲解,目的是让读者全面掌握cocos2d-x的基础理论和基本使用方法;实战篇(第11~12章)利用cocos2d-x开发了一款纵版射击游戏和横版动作游戏,旨在让读者深入了解完整的游戏开发流程和方法,以及如何将cocos2d-x的理论知识用到实战中,而且两种游戏分别代表了纵版卷轴和横版卷轴,可以让开发者深入了解不同类型游戏的开发思想;高级篇(第13~16章)讲解了cocos2d-x的高级知识、开发技巧以及最佳实践,包括粒子系统、游戏中常用算法在cocos2d-x中的实现、内存管理与性能优化,以及cocos2d-html 5等方面的内容。
目录
《cocos2d-x权威指南》
前 言
第一部分 准备篇
第1章 认识cocos2d-x / 2
1.1 什么是cocos2d / 2
1.1.1 cocos2d的特点 / 2
1.1.2 cocos2d的主要功能 / 3
1.1.3 cocos2d的应用 / 5
1.2 什么是cocos2d-x / 6
1.2.1 cocos2d-x的特点 / 6
1.2.2 cocos2d-x的主要功能 / 6
1.2.3 cocos2d-x的应用 / 7
1.3 cocos2d-x与cocos2d-iphone的比较 / 8
1.4 本章小结 / 10
第2章 搭建跨平台的开发环境 / 11
2.1 windows下的开发环境配置 / 11
2.1.1 cocos2d-x软件安装与配置 / 11
2.1.2 cocos2d-x工程目录介绍 / 13
2.1.3 新建项目及交叉编译 / 14
2.2 android下的开发环境配置 / 16
.2.2.1 cocos2d-x软件安装与配置 / 17
2.2.2 cocos2d-x工程目录介绍 / 23
2.2.3 新建项目及交叉编译 / 23
2.3 ios下的开发环境配置 / 27
2.3.1 cocos2d-x软件安装与配置 / 27
2.3.2 cocos2d-x工程目录介绍 / 28
2.3.3 新建项目及交叉编译 / 29
2.4 使用doxygen工具生成cocos2d-x文档 / 31
2.5 本章小结 / 33
第二部分 基础篇
第3章 cocos2d-x中的核心类 / 36
3.1 节点类 / 36
3.1.1 ccnode类的成员数据 / 37
3.1.2 ccnode类的函数 / 38
3.1.3 坐标系简介 / 41
3.1.4 实例:通过节点控制屏幕中的全体渲染对象 / 43
3.2 导演类 / 46
3.2.1 ccdirector类的成员数据 / 46
3.2.2 ccdirector类的函数 / 47
3.2.3 实例:ccdirector类的使用 / 48
3.3 场景类 / 50
3.3.1 如何新建一个场景 / 50
3.3.2 场景的切换 / 52
3.3.3 场景间切换的动画 / 54
3.4 布景层类 / 56
3.4.1 cclayer类的函数 / 58
3.4.2 颜色布景层类cclayercolor / 59
3.4.3 多层布景层类cclayermultiplex / 61
3.4.4 菜单类ccmenu / 63
3.4.5 控件类及其子类 / 65
3.5 精灵类 / 69
3.5.1 ccsprite类的成员数据及函数 / 70
3.5.2 贴图类cctexture2d / 71
3.5.3 精灵批处理类ccspritebatchnode / 72
3.5.4 精灵帧类ccspriteframe / 73
3.5.5 精灵帧缓存类ccspriteframecache / 73
3.5.6 实例:精灵类及其相关类的使用 / 74
3.6 摄像机类 / 79
3.6.1 cccamera类的成员数据 / 80
3.6.2 cccamera类的函数 / 80
3.6.3 实例:cccamera类的使用 / 80
3.7 容器类 / 81
3.7.1 ccmutablearray和ccarray / 81
3.7.2 ccmutabledictionary和ccdictionary / 83
3.8 拖动渐隐效果类ccmotionstreak / 84
3.9 绘制图形 / 86
3.10 时间调度 / 88
3.11 本章小结 / 89
第4章 cocos2d-x中的动作、特效与动画 / 90
4.1 动作类 / 90
4.1.1 ccaction类的主要成员数据和函数 / 90
4.1.2 基本动作 / 91
4.1.3 摄像机动作 / 102
4.1.4 基本样条动作 / 104
4.1.5 缓冲动作 / 108
4.1.6 组合动作 / 111
4.1.7 跟随动作 / 113
4.1.8 可调整速度动作 / 114
4.1.9 动作延时 / 116
4.1.10 改变动作执行对象 / 116
4.1.11 函数回调动作 / 117
4.1.12 过程动作 / 119
4.2 动作管理类 / 121
4.2.1 ccactionmanager类的主要函数 / 122
4.2.2 ccactionmanager类的使用 / 122
4.3 网格动作 / 123
4.3.1 cocos2d-x中的网格 / 123
4.3.2 网格动作 / 124
4.3.3 清除网格 / 126
4.4 动画 / 126
4.4.1 cocos2d-x中与动画相关的类 / 126
4.4.2 实例:cocos2d-x中的动画 / 127
4.4.3 使用plist配置文件实现动画 / 130
4.5 本章小结 / 133
第5章 cocos2d-x中的菜单项和文本渲染系统 / 134
5.1 菜单项 / 134
5.1.1 标签菜单项 / 134
5.1.2 精灵菜单项 / 135
5.1.3 触发器菜单项 / 135
5.1.4 实例:菜单项的使用 / 136
5.2 文本渲染类 / 138
5.2.1 cclableatlas类 / 139
5.2.2 cclabelttf类 / 140
5.2.3 cclabelbmfont类 / 143
5.2.4 生成fnt配置文件的工具 / 144
5.3 本章小结 / 145
第6章 cocos2d-x中的事件处理机制 / 146
6.1 触屏事件 / 146
6.1.1 触点类cctouch / 146
6.1.2 单/多点触摸函数 / 147
6.1.3 加入触摸事件 / 148
6.1.4 单点触摸实例:主角随手指移动 / 151
6.1.5 多点触摸实例:缩放功能的实现 / 154
6.2 加速度传感器事件 / 156
6.2.1 ccaccelerometerdelegate类的函数 / 156
6.2.2 实例:加速度传感器事件的使用 / 157
6.3 按键事件 / 159
6.3.1 cckeypaddelegate类的函数 / 159
6.3.2 实例:按键事件的使用 / 159
6.4 获得用户虚拟键盘输入 / 161
6.4.1 ccimedelegate类的函数 / 161
6.4.2 cctextfieldttf类的函数 / 161
6.4.3 实例:获得用户输入 / 162
6.5 滚动列表类 / 163
6.5.1 cclistview类及其相关类的函数 / 163
6.5.2 实例:滚动列表类的使用 / 164
6.6 本章小结 / 167
第7章 cocos2d-x中的瓦片地图集 / 168
7.1 瓦片地图集及编辑器 / 168
7.1.1 瓦片地图的种类及用途 / 168
7.1.2 tiled地图编辑器 / 169
7.1.3 用tiled地图编辑器编辑地图 / 170
7.1.4 添加精灵层 / 173
7.1.5 tiled地图编辑器数据文件 / 173
7.1.6 瓦片地图集类cctmxtiledmap / 174
7.1.7 地图层类cctmxlayer / 175
7.1.8 地图精灵组类cctmxobjectgroup / 176
7.2 如何在cocos2d-x中使用地图 / 176
7.2.1 新建地图类并在地图中显示 / 177
7.2.2 普通视角地图获得对应位置图素 / 178
7.2.3 45度角地图获得对应位置图素 / 179
7.2.4 gid值实例:种树 / 180
7.2.5 地图属性数据的使用 / 182
7.2.6 在地图中加入精灵 / 182
7.2.7 精灵层的使用 / 186
7.3 贴图地图类cctilemapatlas / 188
7.4 本章小结 / 189
第8章 cocos2d-x中的声音、存储和网络 / 190
8.1 声音 / 190
8.1.1 cocos2d-x在不同平台下支持的声音 / 190
8.1.2 simpleaudioengine类的常用函数 / 191
8.1.3 实例:simpleaudioengine类的使用 / 191
8.2 游戏存档 / 194
8.2.1 ccuserdefault类的常用函数 / 195
8.2.2 实例:ccuserdefault类的使用 / 195
8.3 网络连接 / 197
8.3.1 curl基础知识 / 198
8.3.2 libcurl基础知识 / 198
8.3.3 实例:curl的使用 / 200
8.4 本章小结 / 200
第9章 可视化场景编辑器 / 202
9.1 cocosbuilder简介 / 202
9.2 cocosbuilder编辑器的使用 / 202
9.2.1 cocosbuilder菜单操作 / 202
9.2.2 对象属性编辑 / 206
9.3 cocosbuilder的使用 / 210
9.3.1 cocosbuilder在cocos2d-x中使用的相关类 / 210
9.3.2 实例:cocosbuilder在cocos2d-x中的使用 / 212
9.4 本章小结 / 218
第10章 cocos2d-x中的物理引擎 / 219
10.1 物理引擎 / 219
10.1.1 什么是物理引擎 / 219
10.1.2 物理引擎的作用 / 219
10.1.3 box2d和chipmunk的对比 / 220
10.2 box2d物理引擎 / 220
10.2.1 box2d引擎中的重要概念 / 221
10.2.2 box2d的使用步骤 / 221
10.2.3 在cocos2d-x中使用box2d / 221
10.3 在cocos2d-x中使用chipmunk / 229
10.4 本章小结 / 233
第三部分 实战篇
第11章 纵版射击游戏:喵星战争 / 236
11.1 纵版射击游戏的特点 / 236
11.2 喵星战争简介 / 237
11.2.1 喵星战争的游戏规则 / 237
11.2.2 喵星战争的游戏框架和界面 / 237
11.3 喵星战争主游戏模块组成元素的实现 / 239
11.3.1 主角小猫的实现 / 239
11.3.2 敌人狗博士的实现 / 244
11.3.3 鱼骨子弹的实现 / 247
11.3.4 试管子弹的实现 / 248
11.3.5 游戏分数的实现 / 248
11.4 游戏主模块的实现 / 251
11.5 游戏主菜单的实现 / 256
11.6 关于界面的实现 / 259
11.7 本章小结 / 260
第12章 横版动作游戏:萝莉快跑 / 261
12.1 横版动作游戏的特点 / 261
12.2 萝莉快跑简介 / 262
12.2.1 萝莉快跑的游戏规则 / 262
12.2.2 萝莉快跑的游戏框架和界面 / 262
12.3 萝莉快跑主游戏模块组成元素的实现 / 264
12.3.1 主角萝莉的实现 / 264
12.3.2 星星的实现 / 268
12.3.3 地图的实现 / 269
12.4 游戏主模块的实现 / 273
12.5 游戏主菜单的实现 / 277
12.6 关于界面的实现 / 279
12.7 本章小结 / 280
第四部分 高级篇
第13章 粒子系统 / 282
13.1 什么是粒子系统 / 282
13.1.1 粒子系统的特点 / 283
13.1.2 粒子系统的构成 / 283
13.2 cocos2d-x中的粒子系统 / 283
13.2.1 粒子系统基类ccparticlesystem / 285
13.2.2 放射式粒子系统ccparticlesystemquad / 285
13.3 在cocos2d-x中使用粒子系统 / 287
13.3.1 新建一个粒子系统ccparticlesystemquad类 / 287
13.3.2 直接使用ccparticlesystemquad类的子类创建粒子系统 / 289
13.3.3 使用粒子编辑器创建粒子系统 / 290
13.3.4 “清理”粒子系统 / 291
13.4 支持cocos2d-x的粒子编辑器 / 291
13.4.1 windows粒子编辑器cocos2d particle editor / 292
13.4.2 粒子编辑器particle designer / 296
13.5 本章小结 / 303
第14章 游戏中常用算法在cocos2d-x中的实现 / 304
14.1 a星算法 / 304
14.1.1 启发式搜索算法原理 / 304
14.1.2 什么是a星搜索 / 305
14.1.3 a星算法在cocos2d-x中的实现 / 306
14.2 碰撞检测 / 318
14.2.1 碰撞检测的基本思想 / 319
14.2.2 碰撞检测在cocos2d-x中的实现 / 320
14.3 本章小结 / 326
第15章 内存管理与性能优化 / 327
15.1 cocos2d-x中的内存管理 / 327
15.1.1 cocos2d-x内存管理的原则 / 327
15.1.2 cocos2d-x中的图片处理 / 328
15.2 cocos2d-x对图片渲染的控制 / 330
15.2.1 ccrendertexture的使用 / 330
15.2.2 cocos2d-x中绘制方法的对比 / 332
15.3 cocos2d-x中处理图片的方法 / 333
15.3.1 高清图片的处理 / 333
15.3.2 抗锯齿处理 / 334
15.3.3 mipmap处理 / 335
15.3.4 获得贴图数和大小 / 337
15.4 多语言混编cocos2d-x / 337
15.4.1 cocos2d-x中调用objective-c / 337
15.4.2 cocos2d-x中调用java / 338
15.5 cocos2d-x的调试 / 339
15.5.1 visual studio中的调试方法 / 339
15.5.2 eclipse中的调试方法 / 339
15.5.3 xcode中的调试方法 / 342
15.6 android中画面的缩放问题 / 346
15.6.1 等比例缩放 / 346
15.6.2 非等比例缩放 / 346
15.7 本章小结 / 348
第16章 cocos2d的分支cocos2d-html5 / 349
16.1 认识html5 / 349
16.2 如何使用cocos2d-html5 / 350
16.2.1 搭建cocos2d-html5的开发环境 / 351
16.2.2 cocos2d-html5 2.0版本的新特性 / 355
16.2.3 cocos2d-html5的helloworld项目介绍 / 355
16.3 cocos2d-x的未来 / 363
16.4 本章小结 / 363
附录 cocos2d-x中常见的宏 / 365