Cocos2D-x权威指南

Cocos2D-x权威指南
作 者: 满硕泉
出版社: 机械工业出版社
丛编项:
版权说明: 本书为出版图书,暂不支持在线阅读,请支持正版图书
标 签: 编程语言与程序设计 计算机与互联网
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  满硕泉(bill man),资深手机游戏开发工程师和移动应用开发工程师,在Android和iOS两个平台上开发了多款游戏,对Cocos2D-x和Unity3D等游戏引擎有非常深入的研究,积累了丰富的经验。精通C++、Java、.NET和JavaScript相关的技术,近期关注HTML 5。活跃于CSDN和Cocos2D等技术社区,撰写了大量关于Cocos2D-x的文章,深受广大网友好评。

内容简介

《Cocos2D-x权威指南》是目前Coco2D-x领域内容较为全面、系统和极具实战性的一本著作,也是技术版本最新的一本著作。由国内资深的游戏开发工程师和移动应用开发工程师撰写。书中不仅系统讲解了Cocos2D-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等方面的内容。

图书目录

前 言

第一部分 准备篇

第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