第1章 简介 / 1
1.1 本书第2版的新增内容 / 2
1.2 选择iOS版cocos2d的理由 / 3
1.2.1 免费 / 3
1.2.2 开源 / 3
1.2.3 Objective-C / 3
1.2.4 2D游戏引擎 / 3
1.2.5 物理引擎 / 4
1.2.6 技术难度较低 / 4
1.2.7 依然需要编程 / 4
1.2.8 超棒的cocos2d社区 / 5
1.3 cocos2d-iphone项目的未来 / 5
1.4 其他cocos2d游戏引擎 / 6
1.5 本书读者对象 / 7
1.6 阅读前提 / 7
1.6.1 编程经验 / 7
1.6.2 Objective-C / 7
1.7 本书内容 / 8
1.7.1 iOS游戏开发新手将学会什么 / 8
1.7.2 iOS应用程序开发者将学会什么 / 9
1.7.3 cocos2d开发者将学会什么 / 9
1.8 章节介绍 / 9
1.9 本书的源代码 / 10
1.10 问题和反馈 / 11
第2章 入门 / 13
2.1 准备工作 / 13
2.1.1 系统要求 / 13
2.1.2 注册成为iOS开发者 / 14
2.1.3 证书和授权文件 / 14
2.1.4 下载并安装iOS SDK / 14
2.1.5 下载并安装cocos2d / 15
2.2 HelloWorld应用程序 / 18
2.2.1 HelloWorld文件在项目中的位置 / 19
2.2.2 资源 / 19
2.2.3 支持文件 / 19
2.2.4 HelloWorld类 / 21
2.3 cocos2d中的内存管理问题 / 24
2.4 改变世界 / 27
2.5 你还应该知道的 / 29
2.5.1 iOS设备 / 29
2.5.2 关于内存的使用 / 30
2.5.3 iOS模拟器 / 31
2.5.4 关于日志 / 32
2.6 本章小结 / 33
第3章 基础知识 / 35
3.1 场景图 / 35
3.2 CCNode类层次结构 / 38
3.3 CCNode类 / 39
3.3.1 节点的处理方式 / 39
3.3.2 动作的处理方式 / 40
3.3.3 消息调度 / 41
3.4 Director类、场景和层 / 44
3.4.1 Director类 / 44
3.4.2 CCScene类 / 46
3.4.3 场景和内存 / 47
3.4.4 推进和弹出场景 / 48
3.4.5 CCTransitionScene类 / 49
3.4.6 CCLayer类 / 51
3.5 CCSprite类 / 56
3.5.1 定位点揭秘 / 57
3.5.2 纹理大小 / 57
3.6 CCLabelTTF类 / 58
3.7 菜单 / 59
3.8 动作 / 61
3.8.1 间隔动作 / 62
3.8.2 瞬时动作 / 67
3.9 cocos2d中的单件类 / 69
3.10 cocos2d测试案例 / 71
3.11 本章小结 / 71
第4章 你的第一个游戏 / 73
4.1 按部就班地创建项目 / 73
4.2 添加Player Sprite / 78
4.3 加速计输入 / 80
4.4 首次测试运行 / 81
4.5 玩家速度 / 81
4.6 添加障碍物 / 84
4.7 碰撞检测 / 91
4.8 标签和位图字体 / 92
4.8.1 添加得分标签 / 92
4.8.2 CCLabelBMFont简介 / 93
4.8.3 使用Glyph Designer创建位图字体 / 94
4.9 播放音频 / 95
4.10 移植到iPad / 97
4.10.1 单个通用的应用程序还是两个单独的应用程序 / 97
4.10.2 使用Xcode 3移植到iPad / 98
4.10.3 使用Xcode 4移植到iPad / 99
4.11 本章小结 / 100
第5章 游戏组件 / 101
5.1 使用多个场景 / 101
5.1.1 添加多个场景 / 101
5.1.2 正在加载下一段,请做好准备 / 104
5.2 使用多个层 / 106
5.2.1 实现关卡的最佳方法 / 112
5.2.2 CCLayerColor / 113
5.3 从CCSprite类继承游戏对象 / 114
5.4 使用CCSprite复合游戏对象 / 115
5.5 奇妙的CCNode派生类 / 119
5.5.1 CCProgressTimer / 119
5.5.2 CCParallaxNode / 120
5.5.3 CCRibbon / 122
5.5.4 CCMotionStreak / 124
5.6 本章小结 / 125
第6章 深入了解精灵 / 127
6.1 Retina显示屏幕 / 127
6.2 CCSpriteBatchNode / 129
6.2.1 何时使用CCSpriteBatchNode / 131
6.2.2 示例项目 / 131
6.3 精灵动画初体验 / 137
6.4 用于创建动画的辅助类别 / 139
6.5 使用纹理图册 / 141
6.5.1 何为纹理图册 / 141
6.5.2 TexturePacker工具介绍 / 141
6.5.3 为TexturePacker准备项目 / 142
6.5.4 使用TexturePacker创建纹理图册 / 143
6.5.5 在cocos2d中使用纹理图册 / 146
6.5.6 改进CCAnimation辅助类别 / 147
6.5.7 将所有图像都放入一个纹理图册中 / 149
6.6 本章小结 / 150
第7章 滚屏射击游戏(上) / 151
7.1 高级视差滚屏 / 151
7.1.1 将背景创建为条纹 / 151
7.1.2 在代码中重建背景 / 153
7.1.3 移动ParallaxBackground / 155
7.1.4 视差滚动的速度因素 / 156
7.1.5 实现背景的无限滚动 / 158
7.1.6 消除闪烁 / 160
7.1.7 重复贴图 / 161
7.2 虚拟手柄 / 162
7.2.1 引入SneakyInput / 162
7.2.2 集成SneakyInput / 163
7.2.3 触摸按钮产生射击 / 165
7.2.4 为按钮添加皮肤 / 166
7.2.5 控制动作 / 169
7.2.6 数字控制 / 171
7.3 本章小结 / 172
第8章 滚屏射击游戏(下) / 173
8.1 添加BulletCache类 / 173
8.2 关于敌人 / 177
8.3 Entity类的继承体系 / 178
8.3.1 EnemyEntity类 / 179
8.3.2 EnemyCache类 / 183
8.3.3 组件类 / 186
8.4 射击开火 / 189
8.5 大怪物的生命条 / 190
8.6 本章小结 / 193
第9章 粒子效果 / 195
9.1 粒子效果实例 / 195
9.2 用复杂方法创建粒子效果 / 198
9.2.1 继承CCParticleSystem:点粒子还是方形粒子 / 199
9.2.2 CCParticleSystem属性 / 202
9.3 Particle Designer / 210
9.3.1 Particle Designer介绍 / 210
9.3.2 使用Particle Designer生成的粒子效果 / 213
9.3.3 分享粒子效果 / 214
9.4 在射击游戏中添加粒子效果 / 216
9.5 本章小结 / 217
第10章 瓦片地图 / 219
10.1 瓦片地图简介 / 219
10.2 使用TexturePacker处理图像 / 222
10.3 Tiled(Qt)地图编辑器 / 223
10.3.1 创建新的瓦片地图 / 223
10.3.2 设计瓦片地图 / 224
10.4 在cocos2d中使用直角瓦片地图 / 227
10.4.1 定位被触摸的瓦片 / 230
10.4.2 提高性能和可读性 / 232
10.4.3 使用对象层 / 233
10.4.4 绘制对象层矩形 / 234
10.4.5 滚动瓦片地图 / 237
10.5 本章小结 / 238
第11章 斜角瓦片地图 / 241
11.1 设计斜角瓦片地图图形 / 242
11.2 使用Tiled编辑斜角瓦片地图 / 244
11.2.1 新建斜角瓦片地图 / 245
11.2.2 创建新的斜角瓦片集 / 246
11.2.3 设计斜角瓦片地图的基本规则 / 246
11.3 将斜角瓦片地图应用到游戏编程中 / 248
11.3.1 在cocos2d中加载斜角瓦片地图 / 248
11.3.2 在cocos2d中设置斜角瓦片地图 / 248
11.3.3 定位斜角瓦片 / 250
11.3.4 滚动斜角瓦片地图 / 252
11.3.5 斜角瓦片地图的边界问题 / 253
11.3.6 增加可移动的玩家角色 / 255
11.4 在游戏中加入更多内容 / 262
11.5 本章小结 / 263
第12章 物理引擎 / 265
12.1 物理引擎的基本概念 / 265
12.2 物理引擎的局限性 / 266
12.3 Box2D与Chipmunk / 266
12.4 Box2D / 267
12.4.1 Box2D眼中的世界 / 268
12.4.2 把移动范围限制在屏幕内 / 269
12.4.3 转换点 / 271
12.4.4 在Box2D世界中添加盒子 / 272
12.4.5 连接精灵和刚体 / 273
12.4.6 碰撞检测 / 275
12.4.7 连接刚体 / 277
12.5 Chipmunk / 278
12.5.1 面向对象的Chipmunk / 278
12.5.2 构建Chipmunk物理空间 / 279
12.5.3 将盒子添加到物理空间中 / 280
12.5.4 添加小盒子 / 281
12.5.5 更新盒子的精灵 / 283
12.5.6 Chipmunk碰撞实践 / 284
12.5.7 Chipmunk中的关节 / 285
12.6 本章小结 / 287
第13章 弹球游戏 / 289
13.1 图形:凸多边形和逆时针方式 / 289
13.2 使用PhysicsEditor / 290
13.2.1 定义发射器形状 / 292
13.2.2 定义弹球桌形状 / 293
13.2.3 定义挡板 / 296
13.2.4 定义反弹器和球 / 297
13.2.5 保存并发布 / 297
13.3 编写弹球游戏 / 298
13.3.1 BodyNode类 / 298
13.3.2 创建弹球桌 / 302
13.3.3 Box2D调试绘制 / 307
13.3.4 添加球 / 308
13.3.5 使球动起来 / 310
13.3.6 添加反弹器 / 313
13.3.7 发射器 / 314
13.3.8 挡板 / 323
13.4 本章小结 / 326
第14章 Game Center / 329
14.1 激活Game Center / 329
14.1.1 在iTunes Connect中创建应用程序 / 330
14.1.2 建立排行榜和成就 / 330
14.1.3 创建cocos2d Xcode项目 / 331
14.1.4 配置Xcode项目 / 331
14.1.5 小结 / 334
14.2 Game Kit编程 / 335
14.2.1 GameKitHelper委托 / 335
14.2.2 检查Game Center是否可用 / 336
14.2.3 验证本地玩家身份 / 337
14.2.4 block对象 / 340
14.2.5 接收本地玩家的好友列表 / 341
14.2.6 排行榜 / 343
14.2.7 成就 / 348
14.2.8 联机 / 352
14.2.9 收发数据 / 356
14.3 本章小结 / 360
第15章 cocos2d与UIKit视图 / 361
15.1 Cocoa Touch是什么 / 361
15.2 同时使用Cocoa Touch和cocos2d / 362
15.2.1 为什么将Cocoa Touch和cocos2d混合在一起 / 362
15.2.2 混合Cocoa Touch和cocos2d的局限性 / 362
15.2.3 Cocoa Touch和cocos2d的区别 / 363
15.3 注意:你在cocos2d中的第一个UIKit视图 / 364
15.4 在cocos2d应用程序中嵌入UIKit视图 / 367
15.4.1 在cocos2d视图的前面添加视图 / 367
15.4.2 使用UIImage改变UITextField的皮肤 / 369
15.4.3 在cocos2d视图的后面添加视图 / 371
15.4.4 添加利用Interface Builder的视图设计 / 377
15.4.5 自动旋转中的方向问题 / 380
15.5 在Cocoa Touch应用程序中嵌入cocos2d视图 / 384
15.5.1 用cocos2d创建基于视图的应用程序项目 / 384
15.5.2 设计混合应用程序的用户界面 / 387
15.5.3 启动cocos2d引擎 / 388
15.5.4 停止和重启cocos2d引擎 / 390
15.5.5 改变场景 / 392
15.6 本章小结 / 393
第16章 Kobold2D入门 / 395
16.1 使用Kobold2D的好处 / 396
16.1.1 准备使用Kobold2D / 396
16.1.2 免费使用Kobold2D / 396
16.1.3 Kobold2D升级简单 / 396
16.1.4 提供类库服务 / 397
16.1.5 Kobold2D的跨平台性 / 397
16.2 Kobold2D的工作空间 / 398
16.3 Hello-Kobold2D模板项目 / 399
16.3.1 HelloWorld项目文件 / 399
16.3.2 Kobold2D 如何启动应用程序 / 401
16.3.3 用iSimulate运行HelloWorld / 408
16.4 使用KKInput编写的针对Mac的DoodleDrop / 409
16.5 使用cocos3d进入3D世界 / 411
16.5.1 AppDelegate类的变化 / 411
16.5.2 cocos3d世界 / 415
16.5.3 将cocos3d添加到现有的Kobold2D项目中 / 417
16.6 本章小结 / 418
第17章 番外篇 / 419
17.1 其他学习和工作资源 / 419
17.1.1 寻求帮助 / 420
17.1.2 从源码项目中受益 / 422
17.1.3 Cocos2D Podcast / 427
17.1.4 工具介绍 / 427
17.1.5 cocos2d参考应用程序 / 428
17.2 游戏行业 / 430
17.2.1 与出版商合作 / 431
17.2.2 寻找自由职业者 / 432
17.2.3 寻找免费的艺术品和音频 / 432
17.2.4 寻找相关工具 / 433
17.2.5 市场 / 433
17.2.6 使用更多技术获得更多收入 / 436
17.3 本章小结 / 440
