第一部分 准备篇 2
第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
第二部分 基础篇 36
第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 CCMutableDictiona和CCDictiona 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 CCLabe1TTF类 140
5.2.3 CCLabeIBMFont类 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章 Cocos2 D-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
第三部分 实战篇 236
第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
第四部分 高级篇 282
第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