第1章 Cocos2d-x游戏引擎介绍 1
1.1 什么是游戏引擎 2
1.2 Cocos2d游戏引擎 2
1.2.1 Cocos2d的发展 2
1.2.2 Cocos2d的特点 4
1.2.3 Cocos2d的现在和未来 4
1.3 Cocos2d-x游戏引擎 4
1.3.1 选择Cocos2d-x的理由 5
1.3.2 Cocos2d-x的主要功能 6
1.3.3 Cocos2d-x 3.0 版本的各语言优化 7
1.3.4 Cocos2d-x 3.0的新特性 8
1.3.5 使用了Cocos2d-x的游戏 10
1.4 本章小结 11
第2章 跨平台开发环境的搭建 12
2.1 搭建iOS下的开发环境 13
2.1.1 Cocos2d-x的安装与配置 14
2.1.2 Cocos2d-x项目结构和代码分析 15
2.2 搭建Windows下的开发环境 25
2.2.1 Cocos2d-x的安装与配置 25
2.2.2 Cocos2d-x工程目录和代码分析 27
2.3 搭建Android下的开发环境 29
2.3.1 软件的安装与环境变量配置 30
2.3.2 构建Cocos2d-x工程 31
2.3.3 在Eclipse下运行程序 32
2.4 本章小结 34
第3章 Cocos2d-x的核心类 35
3.1 节点类(Node) 36
3.1.1 Node类的成员变量 36
3.1.2 Node类的函数 38
3.1.3 坐标系 41
示例:测试锚点——AnchorPointTest 43
示例:测试Node类的常用函数——NodeTest 45
3.2 场景类(Scene) 48
3.2.1 TransitionScene场景切换 48
3.2.2 Cocos2d-x支持的场景过渡效果 48
3.3 层类(Layer) 50
3.3.1 Layer类的常用成员变量 50
3.3.2 Layer类的常用函数 50
3.4 导演类(Director) 51
3.4.1 Director导演类常用的成员变量 51
3.4.2 Director导演类常用的函数 52
3.4.3 Director导演类在游戏初始化时的使用分析 53
3.5 精灵类(Sprite) 54
3.5.1 纹理的相关概念 54
3.5.2 Sprite精灵类的常用成员变量 55
3.5.3 Sprite精灵类的常用函数 55
示例:测试Sprite类的常用函数——SpriteTest 57
3.5.4 SpriteFrame精灵帧类 59
3.5.5 SpriteFrameCache精灵帧缓存类 60
3.5.6 SpriteBatchNode精灵表单类 60
示例:测试SpriteFrameCacheTest精灵帧缓存类——SpriteFrameCacheTest 62
3.5.7 制作精灵表单 64
示例:测试自己制作的精灵表单——SpriteSheetTest 67
3.6 Cocos2d-x3.0新的数据结构 68
3.6.1 cocos2d::Vector<T> 69
示例:测试cocos2d::Vector<T>类的常用函数——VectorTest 70
3.6.2 cocos2d::Map<K,V> 73
示例:测试cocos2d::Map<K,V>类的常用函数——MapTest 74
3.6.3 cocos2d::Value 76
示例:测试cocos2d::Value类的常用函数——ValueTest 77
3.7 本章小结 79
第4章 Cocos2d-x的动作和动画 80
4.1 作基类Action 81
4.1.1 Action类的常用成员变量 82
4.1.2 Action类的常用函数 82
4.1.3 Action类的子类 82
4.2 示例:测试基本动作——ActionBasicTest 84
4.2.1 显示、隐藏、闪烁动作 85
4.2.2 淡入淡出动作 87
4.2.3 色彩值渐变动作 89
4.2.4 移动动作 92
4.2.5 跳跃动作 95
4.2.6 缩放动作 98
4.2.7 旋转动作 101
4.3 示例:测试组合动作——ActionCombinationTest 104
4.4 示例:测试可变速度动作——ActionEaseTest 108
4.4.1 EaseIn、EaseOut和EaseInOut 109
4.4.2 EaseSineIn、EaseSineOut和EaseSineInOut 111
4.4.3 EaseExponentialIn、EaseExponentialOut和EaseExponentialInOut 111
4.4.4 EaseBounceIn、EaseBounceOut和EaseBounceInOut 112
4.4.5 EaseElasticIn、EaseElasticOut和EaseElasticInOut 112
4.5 示例:测试速度动作——ActionSpeedTest 112
4.6 示例:测试跟随动作——ActionFollowTest 114
4.7 示例:测试延迟动作——ActionDelayTest 116
4.8 示例:测试函数回调动作——ActionCallFuncTest 117
4.9 Cocos2d-x中与动画相关的类 122
4.10 示例:英雄舞剑动画 124
4.11 示例:僵尸走路动画 125
4.12 示例:使用动画帧缓冲实现动画 127
4.13 示例:制作精灵表单实现动画 129
4.14 Cocos2d-x新增的3D特性fbv-conv的用法 132
4.15 示例:Sprite3D创建3D精灵 133
4.16 示例:Animation3D创建3D动画 135
4.17 本章小结 137
第5章 Cocos2d-x的文本渲染系统和菜单 138
5.1 文本渲染相关的类 138
5.2 TTF类型标签LabelTTF 139
示例:测试LabelTTF类——LabelTTFTest 139
5.3 BMFont标签类LabelBMFont 141
示例:测试LabelBMFont类——LabelBMFontTest 143
5.4 Atlas标签类LabelAtlas 144
示例:测试LabelAtlas类——LabelAtlasTest 145
5.5 Cocos2d-x新增的标签类Label 147
示例:测试Label类——LabelTest 148
5.6 菜单类Menu 150
5.7 菜单项MenuItem和常用子类 151
5.7.1 标签菜单项(MenuItemLabel) 151
5.7.2 自定义字体菜单项(MenuItemAtlasFont) 152
5.7.3 字体菜单项(MenuItemFont) 152
5.7.4 精灵菜单项(MenuItemSprite) 152
5.7.5 图片菜单项(MenuItemImage) 152
5.7.6 触发器菜单项(MenuItemToggle) 153
示例:测试菜单——MenuTest 153
5.8 本章小结 157
第6章 Cocos2d-x的事件处理机制 158
6.1 事件处理机制 158
6.1.1 接收数据(Touch) 159
6.1.2 分发事件(EventDispatcher) 160
6.1.3 处理响应(EventListener) 161
6.2 触摸事件 162
6.2.1 单点触摸事件(EventListenerTouchOneByOne) 162
示例:场景优先事件监听——TouchOneByOneTest 162
示例:滑动屏幕选择菜单——TouchOneByOneTest 167
示例:固定值优先事件监听——TouchPriorityTest 172
6.2.2 多点触摸事件(EventListenerTouchAllAtOnce) 176
示例:多点触摸(缩放功能的实现)——TouchAllAtOnceTest 176
6.3 加速度计事件(EventListenerAcceleration) 180
示例:滚动的小球——AccelerometerTest 180
6.4 按键事件(EventListenerKeyboard) 184
6.5 鼠标事件(EventListenerMouse) 184
6.6 自定义事件(EventListenerCustom) 185
示例:自定义事件处理——CustomTest 186
6.7 本章小结 188
第7章 Cocos2d-x的常用控件 189
7.1 Cocos2d-x的控件 189
7.1.1 按钮类ControlButton 191
示例:测试按钮——ControlButtonTest 192
7.1.2 拖动滑块类ControlSlider 196
示例:测试拖动滑块——ControlSliderTest 196
7.1.3 开关按钮类ControlSwitch 198
示例:测试开关按钮——ControlSwitchTest 199
7.2 Cocos Studio中的UI控件 201
7.2.1 Widget(所有UI控件的父类) 202
7.2.2 Button(按钮) 205
示例:测试UI控件——UITest 205
7.2.3 Text(本) 211
7.2.4 TextField(文本框) 213
7.2.5 CheckBox(复选框) 217
7.2.6 ImageView(图片) 219
7.2.7 LoadingBar(进度条) 221
7.2.8 Slider(滑动条) 223
7.2.9 Layout(布局容器) 225
7.2.1 0 ScrollView(滚动层容器) 231
7.2.1 1 ListView(列表层容器) 235
7.2.1 2 PageView(分页层容器) 238
7.3 本章小结 241
第8章 Cocos2d-x的声音系统和数据存储 242
8.1 声音系统 242
8.1.1 背景音乐和声音特效 242
8.1.2 CocosDenshion库 243
8.1.3 SimpleAudioEngine类 243
示例:背景音乐和音效控制——SimpleAudioEngineTest 245
8.2 数据存储 255
8.2.1 UserDefault类 255
示例:用户数据存储测试——UserDefaultTest 257
8.3 本章小结 260
第9章 射击类游戏:疯狂打飞机 261
9.1 游戏简介 261
9.2 添加游戏菜单 262
9.3 预加载游戏资源 268
9.4 玩家飞机飞行效果 273
9.5 玩家飞机Touch实现 276
9.6 背景滚动效果 278
9.7 添加敌机 280
9.8 玩家飞机发射子弹 284
9.9 背景音乐和积分统计 288
9.1 0游戏大Boss 290
9.1 1本章小结 296
第10章 粒子系统 297
10.1 粒子系统相关的类 297
10.1.1 ParticleSystem类 297
10.1.2 ParticleSystemQuad类 303
10.1.3 ParticleBatchNode类 303
10.2 粒子系统的使用 303
示例:使用内置的粒子系统——ParticleEffectTest 305
示例:自己定制粒子系统——MyParticleTest 306
10.3 使用Particle Designer工具制作粒子 310
示例:使用plist文件创建粒子系统——ParticleDesignerTest 312
示例:休闲类游戏——疯狂打地鼠 313
10.4 本章小结 337
第11章 瓦片地图 338
11.1 下载和安装Tiled地图编辑器 338
11.2 使用Tiled绘制地图 339
11.3 Tiled地图相关的类 345
11.3.1 TMXTiledMap类 345
11.3.2 TMXLayer类 346
11.3.3 TMXObjectGroup类 347
示例:使用Tiled地图——TileMapTest 348
11.4 本章小结 353
第12章 真实手游:萌仙 354
12.1 设计地图场景 354
12.2 载入地图 355
12.3 地图的移动 358
12.4 遮挡效果和设置障碍物 362
12.5 寻路算法 365
12.6 随机出现怪物 375
12.7 玩家和怪物进行战斗 380
12.8 本章小结 388
第13章 Cocos2d-x的物理引擎 389
13.1 物理引擎概述 389
13.2 Box2D核心概念 390
13.3 Box2D中常用的属性和函数 393
13.4 Box2D示例项目分析 394
13.5 Cocos2d-x和Box2D的整合开发 402
13.6 Box2D发步骤 404
13.7 Cocos2d-x 3.0中的物理引擎 405
13.7.1 PhysicsWorld类 405
13.7.2 PhysicsBody类 406
13.7.3 PhysicsShape类 408
13.8 使用3.0的物理引擎开发项目 409
示例:测试3.0新增的物理引擎——PhysicsTest 409
13.9 益智类游戏:愤怒的小鸟 412
13.9.1 开始前的准备工作 412
13.9.2 进度条制作 412
13.9.3 游戏中的粒子效果 415
13.9.4 游戏选关操作 420
13.9.5 设计关卡数据 425
13.9.6 设计精灵类 428
13.9.7 游戏主界面 431
13.9.8 弹弓发射小鸟 435
13.9.9 物理引擎 441
13.9.1 0物理碰撞 445
13.9.1 1游戏过关设计 448
13.1 0本章小结 452
第14章 Cocos2d-x的内存管理 454
14.1 内存管理概述 454
14.2 手动内存管理 455
14.2.1 对象的引用计数 455
14.2.2 对象所属权 458
14.2.3 函数中的保留和释放 461
14.2.4 使用自动释放池 462
14.2.5 手动内存管理总结 465
14.3 自动释放池 465
14.3.1 Ref的引用计数 465
14.3.2 AutoreleasePool自动释放池 468
14.3.3 PoolManager自动释放池管理器 471
14.3.4 create函数 474
14.4 本章小结 476
第15章 塔防类游戏:保卫公主 477
15.1 设计关卡地图场景 477
15.2 游戏菜单 479
15.3 选择关卡 482
15.4 加载关卡数据 489
15.5 准备进入游戏 497
15.6 随机出现怪物 503
15.7 建造炮塔 508
15.8 旋转炮塔 511
15.9 检测碰撞 515
15.10 游戏结束 517
15.11 本章小结 520
第16章 Cocos Studio 521
16.1 Cocos Studio概述 521
16.2 Cocos Studio安装 521
16.3 Cocos Studio 特性 523
16.4 Cocos Studio界面 523
16.4.1 界面布局 523
16.4.2 起始页面 524
16.4.3 渲染面板 524
16.4.4 动画帧面板 525
16.4.5 属性面板 526
16.4.6 资源面板 526
16.4.7 控件面板 527
16.4.8 快捷工具面板 527
16.5 UI编辑器的使用 528
示例:测试UI编辑器——CocosStudioTest 528
16.5.1 按钮和文本框控件 528
16.5.2 进度条控件 535
16.5.3 滑动条控件 537
16.5.4 层容器控件 539
16.5.5 滚动层容器控件 540
16.5.6 分页层容器控件 543
16.5.7 UI动画制作 545
16.6 本章小结 549
附录 Cocos2d-x中常用的宏 550