第1章 简介 1
1.1 第3版中的新增内容 2
1.2 选择iOS版cocos2d的理由 3
1.2.1 免费 3
1.2.2 开源 4
1.2.3 Objective-C 4
1.2.4 2D游戏引擎 4
1.2.5 物理引擎 4
1.2.6 技术难度较低 5
1.2.7 依然需要编程 5
1.2.8 超棒的cocos2d社区 5
1.3 为什么要用Kobold2D取代cocos2d-iphone 6
1.4 其他cocos2d游戏引擎 6
1.5 本书读者对象 7
1.6 阅读前提 8
1.6.1 编程经验 8
1.6.2 Objective-C 8
1.7 本书内容 9
1.7.1 iOS游戏开发新手将学会什么 9
1.7.2 iOS应用程序开发者将学会什么 10
1.7.3 cocos2d开发者将学会什么 10
1.8 章节介绍 10
1.9 本书的源代码 11
1.10 问题和反馈 12
第2章 入门 13
2.1 准备工作 13
2.1.1 系统要求 13
2.1.2 注册成为iOS开发者 14
2.1.3 证书与授权文件 14
2.1.4 下载并安装Xcode与iOS SDK 15
2.1.5 下载cocos2d或Kobold2D 16
2.1.6 安装Kobold2D 16
2.1.7 创建Kobold2D项目 16
2.1.8 安装cocos2d及其Xcode项目模板 18
2.1.9 创建cocos2d项目的方式 19
2.1.10 如何在cocos2d项目中支持ARC 21
2.2 cocos2d和Kobold2D应用程序剖析 28
2.3 支持ARC的内存管理 34
2.4 改变世界 35
2.5 你还应该知道的 37
2.5.1 iOS设备 37
2.5.2 关于内存的使用 38
2.5.3 iOS模拟器 39
2.5.4 关于性能和日志 40
2.6 本章小结 41
第3章 基础知识 43
3.1 cocos2d场景图 43
3.2 CCNode类的层次结构 46
3.3 CCNode类 47
3.3.1 节点的处理方式 47
3.3.2 动作的处理方式 48
3.3.3 消息调度 49
3.4 Director类、场景和层 53
3.4.1 Director类 53
3.4.2 CCScene类 53
3.4.3 场景和内存 54
3.4.4 推进和弹出场景 55
3.4.5 CCTransitionScene类 56
3.4.6 CCLayer类 58
3.5 CCSprite类 64
3.6 CCLabelTTF类 65
3.7 菜单 66
3.8 动作 71
3.8.1 延时动作 72
3.8.2 瞬时动作 77
3.9 方向、单例、测试、API参考 80
3.10 本章小结 86
第4章 你的第一个游戏 87
4.1 创建DoodleDrop项目 88
4.2 从一个支持ARC的cocos2d项目开始 88
4.3 创建DoodleDrop场景 90
4.4 添加Player Sprite 93
4.5 加速计输入 96
4.6 首次测试运行 97
4.7 玩家速度 97
4.8 添加障碍物 100
4.9 碰撞检测 105
4.10 标签和位图字体 107
4.10.1 添加得分标签 107
4.10.2 CCLabelBMFont简介 108
4.10.3 使用Glyph Designer创建位图字体 109
4.11 播放音频 111
4.12 iPad开发注意事项 113
4.12.1 支持Retina高清显示屏的iPad 113
4.12.2 单个通用的应用程序亦或两款独立的应用程序 113
4.12.3 限定支持设备 114
4.13 本章小结 115
第5章 游戏组件 117
5.1 使用多个场景 117
5.1.1 添加多个场景 117
5.1.2 正在加载下一段,请做好准备 120
5.2 使用多个层 122
5.2.1 实现关卡的最佳方法 128
5.2.2 CCLayerColor和CCLayerGradient 129
5.3 从CCSprite类继承游戏对象 130
5.4 使用CCSprite复合游戏对象 131
5.5 奇妙的CCNode派生类 135
5.5.1 CCProgressTimer 136
5.5.2 CCParallaxNode 137
5.5.3 CCMotionStreak 139
5.6 本章小结 141
第6章 深入了解精灵 143
6.1 Retina显示屏 143
6.2 CCSpriteBatchNode 146
6.2.1 何时使用CCSpriteBatchNode 148
6.2.2 Sprites01示例项目 148
6.3 精灵动画初体验 154
6.4 用于创建动画的辅助类别 155
6.5 使用纹理图册 158
6.5.1 何为纹理图册 158
6.5.2 TexturePacker工具介绍 158
6.5.3 为TexturePacker准备项目 159
6.5.4 使用TexturePacker创建纹理图册 160
6.5.5 在cocos2d中使用纹理图册 163
6.5.6 改进CCAnimation辅助类别 165
6.5.7 将所有图像都放入一个纹理图册中 166
6.6 本章小结 167
第7章 滚屏射击游戏(上) 169
7.1 高级视差滚屏 169
7.1.1 将背景创建为条纹 169
7.1.2 在代码中重建背景 171
7.1.3 移动ParallaxBackground 174
7.1.4 视差滚动的速度因素 175
7.1.5 实现背景的无限滚动 177
7.1.6 消除闪烁 180
7.1.7 重复贴图 181
7.2 虚拟手柄 182
7.2.1 SneakyInput简介 182
7.2.2 触摸按钮产生射击 185
7.2.3 为按钮添加皮肤 187
7.2.4 控制动作 189
7.2.5 数字控制 192
7.3 本章小结 193
第8章 滚屏射击游戏(下) 195
8.1 添加BulletCache类 195
8.2 添加敌人 202
8.2.1 Enemy类 203
8.2.2 EnemyCache类 208
8.3 组件类 212
8.4 射击开火 215
8.5 大怪物的生命条 218
8.6 本章小结 221
第9章 粒子效果 223
9.1 粒子效果实例 223
9.2 用复杂方法创建粒子效果 226
9.2.1 继承CCParticleSystem 227
9.2.2 CCParticleSystem属性 229
9.3 Particle Designer 238
9.3.1 Particle Designer介绍 238
9.3.2 使用Particle Designer生成的粒子效果 240
9.3.3 分享粒子效果 241
9.4 在射击游戏中添加粒子效果 243
9.5 本章小结 245
第10章 瓦片地图 247
10.1 瓦片地图简介 247
10.2 使用TexturePacker处理图像 250
10.3 Tiled(Qt)地图编辑器 251
10.3.1 创建新的瓦片地图 251
10.3.2 设计瓦片地图 254
10.4 在cocos2d中使用直角瓦片地图 256
10.4.1 定位被触摸的瓦片 260
10.4.2 使用对象层 263
10.4.3 绘制对象层矩形 264
10.4.4 滚动瓦片地图 266
10.5 本章小结 268
第11章 斜角瓦片地图 269
11.1 设计斜角瓦片地图图形 270
11.2 使用Tiled编辑斜角瓦片地图 272
11.2.1 新建斜角瓦片地图 272
11.2.2 创建新的斜角瓦片集 274
11.2.3 设计斜角瓦片地图的基本规则 274
11.3 将斜角瓦片地图应用到游戏编程中 276
11.3.1 在cocos2d中加载斜角瓦片地图 276
11.3.2 在cocos2d中设置斜角瓦片地图 276
11.3.3 定位斜角瓦片 278
11.3.4 滚动斜角瓦片地图 281
11.3.5 斜角瓦片地图的边界问题 282
11.3.6 增加可移动的玩家角色 285
11.4 在游戏中加入更多内容 293
11.5 本章小结 294
第12章 物理引擎 295
12.1 物理引擎的基本概念 295
12.2 物理引擎的局限性 296
12.3 Box2D与Chipmunk 296
12.4 Box2D 297
12.4.1 Box2D眼中的世界 298
12.4.2 把移动范围限制在屏幕内 302
12.4.3 转换点 304
12.4.4 在Box2D世界中添加盒子 304
12.4.5 更新Box2D世界 306
12.4.6 碰撞检测 307
12.4.7 连接刚体 309
12.5 Chipmunk 310
12.5.1 构建Chipmunk物理空间 311
12.5.2 将盒子添加到物理空间中 313
12.5.3 添加小盒子 314
12.5.4 更新Chipmunk物理空间 315
12.5.5 Chipmunk碰撞实践 316
12.5.6 Chipmunk中的关节 317
12.6 本章小结 319
第13章 弹球游戏 321
13.1 图形:凸多边形和逆时针方式 321
13.2 使用PhysicsEditor 322
13.2.1 定义发射器形状 324
13.2.2 定义弹球桌形状 326
13.2.3 定义挡板 328
13.2.4 定义反弹器和球 329
13.2.5 保存并发布 330
13.3 编写弹球游戏 330
13.3.1 强制纵向显示 331
13.3.2 BodySprite类 331
13.3.3 创建弹球桌 334
13.3.4 Box2D调试绘制 340
13.3.5 添加球 341
13.3.6 使球动起来 343
13.3.7 添加反弹器 346
13.3.8 发射器 348
13.3.9 挡板 356
13.4 本章小结 360
第14章 Game Center 361
14.1 激活Game Center 361
14.1.1 在iTunes Connect中创建应用程序 362
14.1.2 建立排行榜和成就 362
14.1.3 AppController和NavigationController 363
14.1.4 配置Xcode项目 363
14.1.5 小结 366
14.2 Game Kit编程 366
14.2.1 GameKitHelper委托 367
14.2.2 检查Game Center是否可用 368
14.2.3 验证本地玩家身份 369
14.2.4 block对象 372
14.2.5 接收本地玩家的好友列表 374
14.2.6 排行榜 376
14.2.7 成就 382
14.2.8 联机 387
14.2.9 收发数据 391
14.3 本章小结 395
第15章 cocos2d与UIKit视图 397
15.1 Cocoa Touch是什么 397
15.2 同时使用Cocoa Touch和cocos2d 398
15.2.1 为什么将Cocoa Touch和cocos2d混合在一起 398
15.2.2 混合Cocoa Touch和cocos2d的局限性 398
15.2.3 Cocoa Touch和cocos2d的区别 399
15.3 注意:你在cocos2d中的第一个UIKit视图 400
15.4 在cocos2d应用程序中嵌入UIKit视图 403
15.4.1 在cocos2d视图的前面添加视图 403
15.4.2 使用UIImage改变UITextField的皮肤 405
15.4.3 在cocos2d视图的后面添加视图 407
15.4.4 添加利用Interface Builder的视图设计 413
15.5 在Cocoa Touch应用程序中嵌入cocos2d视图 415
15.5.1 用cocos2d创建基于视图的应用程序项目 415
15.5.2 设计混合应用程序的用户界面 417
15.5.3 启动cocos2d引擎 418
15.5.4 改变场景 421
15.6 本章小结 423
第16章 Kobold2D入门 425
16.1 使用Kobold2D的好处 425
16.1.1 准备使用Kobold2D 426
16.1.2 免费使用Kobold2D 426
16.1.3 Kobold2D升级简单 426
16.1.4 Kobold包含流行的类库 426
16.1.5 Kobold2D的跨平台性 427
16.2 Kobold2D的工作空间 428
16.3 Hello-Kobold2D模板项目 429
16.3.1 HelloWorld项目文件 429
16.3.2 Kobold2D如何启动应用程序 431
16.3.3 Hello Kobold2D场景和层 434
16.3.4 用iSimulate运行Hello World 438
16.4 使用KKInput编写的针对Mac的DoodleDrop 439
16.5 本章小结 441
第17章 番外篇 443
17.1 其他学习和工作资源 444
17.1.1 寻求帮助 444
17.1.2 从源码项目中受益 446
17.1.3 Cocos2D Podcast 450
17.1.4 工具介绍 450
17.1.5 cocos2d参考应用程序 451
17.2 游戏行业 453
17.2.1 与出版商合作 454
17.2.2 寻找自由职业者 455
17.2.3 寻找免费的艺术品和音频 455
17.2.4 寻找相关工具 456
17.2.5 营销 456
17.2.6 使用更多技术获得更多收入 459
17.3 本章小结 463