第一部分 基础篇 2
第1章 开始前的准备工作 2
1.1什么是Cocos2D 2
1.1.1 Cocos2D的特点 2
1.1.2 Cocos2D的主要功能 2
1.1.3 Cocos2D应用 3
1.2下载与安装 4
1.2.1下载Cocos2D 4
1.2.2安装Cocos2D模板 6
1.2.3创建Cocos2D-iPhone的帮助文档 9
1.2.4使用Cocos2D中内置的项目 10
1.3 HelloCocos2D实例 10
1.3.1创建HelloCocos2D项目 10
1.3.2添加小飞机 11
1.3.3让飞机飞行 13
1.4深入学习HelloCocos2D项目 13
1.4.1初识场景和节点 13
1.4.2实现代码分析 14
1.5在设备上运行HelloCocos2D项目 23
1.5.1使用Xcode的自动设置 23
1.5.2在设备上编译运行项目 24
1.6本章小结 24
第2章 你的第一款iPhone游戏——垂直射击游戏 25
2.1准备工作 25
2.2构建游戏场景 28
2.2.1添加资源目录 28
2.2.2添加游戏背景 28
2.2.3添加玩家飞机 29
2.2.4添加敌机 30
2.3玩家交互 33
2.3.1添加加速计移动 33
2.3.2添加子弹并射击 35
2.4碰撞检测 37
2.5游戏音效 38
2.6最后的点缀 39
2.6.1添加计分和玩家生命值 39
2.6.2添加游戏胜利和结束画面 42
2.7本章小结 44
第3章 Cocos2D核心类 45
3.1 Cocos2D节点基础知识 45
3.1.1节 点层级图 45
3.1.2什么是锚点 46
3.2 CCNode节点类 47
3.2.1 CCNode类的属性 47
3.2.2 CCNode类的方法 50
3.3 CCScene场景类 57
3.3.1 CCTransitionScene场景切换 58
3.3.2 Cocos2D支持的场景过渡效果 59
3.4 CCLayer层类 60
3.4.1 CCLayer类的作用 61
3.4.2 CCLayerColor色彩层 62
3.4.3 CCLayerGradient渐变色层 63
3.4.4 CCMenu菜单类 63
3.5 CCTexture纹理类 65
3.5.1纹理和纹理图集 65
3.5.2 CCTexture2D、 CCTextureCache和CCTextureAtlas 66
3.6 CCSprite精灵类 67
3.6.1 CCSprite类的属性及方法 67
3.6.2 CCSpriteBatchNode精灵表单 71
3.6.3 CCSpriteFrame精灵帧 73
3.6.4 CCSpriteFrameCache精灵帧缓存 74
3.7 Cocos2D中的单例 76
3.7.1 Cocos2D中的常用单例 77
3.7.2 CCDirector导演类 77
3.8垂直射击游戏——加载游戏数据 81
3.8.1注释draw方法和背景 81
3.8.2加载游戏资源 82
3.8.3修改AppDelegate.m文件 88
3.8.4修改HelloWorldLayer 89
3.8.5代码重构 90
3.9本章小结 93
第4章 Cocos2D中的动作、特效与动画 94
4.1 Cocos2D中的节点动作 94
4.1.1运行ActionsTest 测试 94
4.1.2 Cocos2D中的动作类 96
4.2动作的分类及使用 98
4.2.1基本动作 98
4.2.2组合动作 102
4.2.3 Ease动作 105
4.2.4延迟动作 107
4.2.5方法回调动作 107
4.2.6块语句调用动作 112
4.2.7反转动作 116
4.2.8特殊动作 117
4.3垂直射击游戏:加载进度条与滚动背景 117
4.3.1使用CCProgressTo和CCProgressFromTo动作添加进度条 117
4.3.2使用CCFollow和CCParallaxNode动作添加滚动背景 119
4.4 Cocos2D中的特效 122
4.4.1 Cocos2D中的网格 122
4.4.2特效的种类及使用 123
4.4.3让节点对象返回最初状态 127
4.5 Cocos2D中的动画 127
4.5.1 Cocos2D中与动画相关的类 127
4.5.2在Cocos2D中实现动画效果 128
4.6使用Zwoptex工具实现动画效果 129
4.6.1安装Zwoptex工具 129
4.6.2制作精灵表单 130
4.6.3制作精灵动画 132
4.7垂直射击游戏——添加飞行和爆炸动画 134
4.7.1添加玩家飞机飞行动画 134
4.7.2添加飞机爆炸效果 136
4.8本章小结 138
第5章 Cocos2D中的文本渲染系统 139
5.1文本渲染系统的组成 139
5.1.1 CCLabe1TTF类 139
5.1.2 CCLabelAtlas类 145
5.1.3 CCLabelBMFont类 147
5.2标签的对齐方式 151
5.3使用第三方工具创建字体纹理图集 152
5.3.1 Hiero工具的使用方法 153
5.3.2创建字体图集步骤 153
5.4垂直射击游戏——美化游戏界面 155
5.4.1渲染文本 155
5.4.2实现倒计时功能 156
5.5本章小结 158
第6章 Cocos2D中的事件处理机制 159
6.1 iOS中的交互事件处理 159
6.1.1什么是用户输入事件 159
6.1.2多点触摸事件处理机制 160
6.1.3重力感应事件处理机制 162
6.2 Cocos2D中的触摸事件处理 164
6.2.1如何处理触摸事件 165
6.2.2模板中自带的TouchesTest项目 168
6.2.3实战——随手指移动的小球 169
6.3 Cocos2D中的重力感应事件 172
6.3.1如何处理重力感应事件 172
6.3.2实战——受加速计控制的小球 172
6.4垂直射击游戏——暂停游戏 177
6.4.1 PauseLayer类的实现 177
6.4.2 CustomMenu类的实现 180
6.4.3游戏主场景添加暂停层 180
6.4.4 PauseLayerProtocol代理 181
6.5本章小结 182
第7章 Cocos2D世界的声音 183
7.1认识CocosDenshion音效引擎 183
7.1.1 CocosDenshion重要API 183
7.1.2 CocosDenshion相关类 184
7.1.3 Cocos2D支持的CocosDenshion 185
7.2 SimpleAudioEngine使用方法 186
7.2.1添加背景音乐 187
7.2.2控制音乐的播放和停止 188
7.2.3判断当前是否播放背景音乐 192
7.2.4添加音效 194
7.3 CDSoundEngine使用方法 195
7.3.1设置CDSoundEngine 195
7.3.2播放背景音乐和音效 199
7.4游戏菜单中的声音设置选项 202
7.5垂直射击游戏——GameOver 208
7.5.1实现背景音乐暂停功能 208
7.5.2实现菜单场景 208
7.5.3实现高分榜场景 215
7.5.4实现GameOver场景 221
7.6本章小结 223
第8章 在Cocos2D中使用瓷砖地图 224
8.1认识瓷砖地图 224
8.2 Tiled地图编辑器 225
8.2.1安装Tiled 225
8.2.2用Tiled绘制地图 226
8.2.3在地图中添加对象 230
8.3在项目中使用瓷砖地图 232
8.3.1 TMX文件解析 232
8.3.2 Cocos2D中的瓷砖地图类 233
8.3.3在项目中载入TMX地图 238
8.3.4使用TMX地图中的对象 239
8.4超级玛丽——实现简单的原型 242
8.4.1准备工作 243
8.4.2创建高清版本Tiled地图 244
8.4.3在代码里加载Tiled地图 248
8.4.4利用WBTMXTool工具制作普清版本Tiled地图 250
8.4.5添加遥感控制器 252
8.5本章小结 254
第9章 物理引擎——更真实的Cocos2D世界 255
9.1游戏物理引擎概况 255
9.1.1物理引擎的应用 255
9.1.2常见的游戏物理引擎 257
9.2认识Box2D 257
9.2.1 Box2D碰撞检测和处理系统 258
9.2.2 Box2D中的核心概念 259
9.3示例项目HelloBox2D详解 265
9.3.1使用模板创建HelloBox2D项目 265
9.3.2解读HelloBox2D默认项目代码 267
9.3.3完善HelloBox2D项目 280
9.4 Box2D实战——物理射击游戏 291
9.4.1准备工作 292
9.4.2创建会转动手臂的小人 294
9.4.3发射子弹 300
9.4.4使用PhysicEditor工具制作凹槽 303
9.4.5凹槽实现升降机效果 306
9.4.6处理碰撞传感器 307
9.4.7加入更多障碍 309
9.5超级玛丽——Box2D与Tiled结合 310
9.5.1添加玛丽和物体的物理属性 310
9.5.2使玛丽行走和跳跃 319
9.5.3为游戏中的金币和箱子添加物理属性 325
9.5.4碰撞检测——吃金币 329
9.5.5游戏特效——吸金币 332
9.5.6加入游戏音效 335
9.5.7设计胜利和失败条件 335
9.6本章小结 338
第二部分 实战篇 340
第10章 Angel Panda游戏的设计与实现 340
10.1 iOS游戏完整的制作流程 340
10.2 Angel Panda游戏设计 342
10.2.1 Angel Panda的创意来源 342
10.2.2 Angel Panda的故事背景及游戏规则 342
10.2.3 Angel Panda的游戏体验流程 343
10.3开发前的准备工作 343
10.3.1下载并安装合适的开发工具 343
10.3.2将项目分解成不同的模块 344
10.3.3准备游戏中所需要的资源 345
10.4 Angel Panda游戏的实现 345
10.4.1使用Cocos2D模板创建新项目 345
10.4.2设置游戏主场景 350
10.4.3添加游戏角色 354
10.4.4添加用户交互机制 368
10.4.5添加游戏逻辑 370
10.4.6添加音效 374
10.5本章小结 377
第11章 AngryPanda游戏的设计与框架搭建 378
11.1 AngryPanda游戏设计 378
11.1.1 AngryPanda的创意来源 378
11.1.2 AngryPanda的故事背景及游戏规则 378
11.1.3 AngryPanda的游戏体验流程 379
11.2开发前的准备工作 379
11.2.1下载并安装合适的开发工具 379
11.2.2将项目分解成不同的模块 380
11.2.3准备游戏需要的资源 381
11.2.4使用Box2D模板创建新项目 382
11.3数据存储和游戏设置 383
11.3.1创建和实现GameData类 384
11.3.2 GameData类中的重要方法 386
11.3.3创建Constants.h头文件 389
11.4游戏中的音效管理 390
11.4.1创建GameSounds类 390
11.4.2 GameSounds类中的重要方法 391
11.5游戏中的辅助界面 391
11.5.1游戏开始界面 392
11.5.2游戏介绍界面 400
11.5.3关卡选择界面 404
11.5.4关卡结束界面 407
11.6本章小结 410
第12章 Angry Panda游戏主场景的实现 411
12.1 Box2D世界的物体 411
12.1.1创建抽象物体类 411
12.1.2创建熊猫角色 414
12.1.3创建平台物体 418
12.1.4创建外星怪物 419
12.1.5创建遮挡物体 423
12.1.6创建并放置攻击目标 425
12.2实现游戏的主场景 427
12.2.1创建MainScene类 428
12.2.2场景的视觉呈现 431
12.2.3如何与用户交互 437
12.2.4实现游戏的逻辑机制 442
12.3游戏中的碰撞检测机制 443
12.3.1创建ContactListener类 444
12.3.2碰撞检测机制的实现 444
12.4本章小结 447
第三部分 高级篇 450
第13章 粒子系统 450
13.1 Cocos2D中的粒子系统 450
13.1.1粒子系统相关的类 450
13.1.2 Cocos2D内置的粒子系统 452
13.2手动创建粒子系统示例 453
13.2.1创建ParticleEffect项目 453
13.2.2添加Cocos2D内置的粒子系统 454
13.2.3手动创建粒子系统类 455
13.2.4设置粒子系统的属性 459
13.3 plist文件 464
13.3.1 particle.plist文件内容 464
13.3.2使用plist文件创建粒子系统 466
13.4粒子工具Particle Designer 468
13.4.1下载安装Particle Designer 468
13.4.2 Particle Designer工具栏 469
13.4.3如何设置Emitter Confiig属性 470
13.4.4如何在项目中使用粒子系统 472
13.5本章小结 473
第14章 CocosBuilder和Shader 474
14.1 CocosBuilder初体验 474
14.1.1下载安装CocosBuilder 474
14.1.2查看Example目录结构 476
14.1.3如何打开样例文件 477
14.2第一个CocosBuilder项目 478
14.2.1创建HelloWorldCocosBuilder场景 478
14.2.2加载HelloWorldCocosBuilder场景 483
14.2.3建立文档与代码的连接 484
14.2.4完善HelloWorldCocosBuilder场景 486
14.3 HelloWorldCocosBuilder项目功能完善 489
14.3.1制作GameMenu场景 490
14.3.2制作About场景 493
14.3.3发布ZIP格式场景资源文件 495
14.3.4如何支持多个设备分辨率 496
14.4着色器 496
14.4.1着色器的种类及工作原理 497
14.4.2编写自己的Shader程序 500
14.4.3如何为Sprite定制顶点着色器 503
14.4.4如何定制片段着色器 507
14.4.5旋风效果示例 509
14.5本章小结 512
第15章 在游戏中添加对Game Center的支持 513
15.1什么是Game Center 513
15.1.1 Game Center的功能 513
15.1.2 Game Center的特点 513
15.2在项目中添加对Game Center的支持 514
15.2.1注册iOS开发者账号 514
15.2.2为应用创建并设置App ID 514
15.2.3在iTunes Connect中注册应用 517
15.2.4开启对Game Center的支持 520
15.2.5在iTunes Connect中添加成就系统 520
15.2.6在iTunes Connect中设置积分排行榜 523
15.3示例项目GKTapper详解 524
15.3.1添加Game Kit框架 525
15.3.2检查Game Center是否可用 526
15.3.3验证玩家是否登录Game Center 527
15.3.4实现成就系统 530
15.3.5实现积分排行榜 535
15.4本章小结 539
第16章 在游戏中添加对IAP的支持 540
16.1什么是IAP 540
16.1.1 IAP的功能 540
16.1.2 IAP中的商品类型 540
16.1.3 IAP实现机制 542
16.2 Store Kit Framework介绍 545
16.2.1 Store Kit Framework中的购买核心类 545
16.2.2 Store Kit Framework中的商品核心类 548
16.2.3 SKDownload类 550
16.2.4 Store Kit Framework中的协议 550
16.3在iTunes Connect配置IAP 551
16.3.1在iTunes Connect中添加商品信息 552
16.3.2在iTunes Connect中添加沙盒测试账号 558
16.4在项目中添加与IAP相关的代码 560
16.4.1 IAPGame项目简介 560
16.4.2在项目中添加Store Kit框架 562
16.4.3添加MyStore类 563
16.5在设备中测试并提交审核 576
16.6本章小结 583
第17章 游戏性能分析与优化 584
17.1如何发现性能瓶颈 584
17.1.1 Instruments基本功能 584
17.1.2 Instruments中内置的分析工具 585
17.1.3如何使用Time Profiiler工具模板 586
17.1.4如何使用OpenGL ES Driver工具模板 588
17.1.5使用空白模板创建定制分析工具 590
17.2 Cocos2D内置的性能分析工具 591
17.2.1 CCProfiler和CCProfilingTimer 591
17.2.2 如何使用性能分析工具 593
17.3优化Cocos2D游戏性能 595
17.3.1在Cocos2D中开启自动引用计数 595
17.3.2使用CCSpriteBatchNode替代CCSprite 597
17.3.3提升游戏性能的其他技巧 598
17.4本章小结 600
第18章 产品的测试、发布与推广 601
18.1用户体验测试 601
18.1.1 测试用户的选择 601
18.1.2产品测试的步骤 601
18.2产品的上传与发布 610
18.2.1加入iOS开发者计划 610
18.2.2在App Store中发布产品 618
18.3 App产品的宣传与推广 636
18.3.1产品推广的原因 636
18.3.2产品推广的方法 636
18.4本章小结 638
第19章 Cocos2D的延伸 639
19.1 Cocos3D简介 639
19.1.1 Cocos3D的基本特性 639
19.1.2 Cocos3D核心类简介 640
19.1.3下载并安装Cocos3D 642
19.2 Cocos2D-x简介 643
19.2.1创建iOS版的HelloWorld项目 643
19.2.2创建基于Cocos2D-x的Android项目 648
19.3 Cocos2D-HTML5详解 661
19.3.1 Cocos2D-HTML5简介 661
19.3.2下载安装Cocos2D-HTML5 662
19.3.3安装配置WebServer(可选) 664
19.3.4解析he11oHTML5 World项目 665
19.4 Cocos2D-Python简介 671
19.5本章小结 671