目 录
第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
iOS 5 cocos2d 游戏开发实战(第 2 版)
X
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
目 录
XI
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
iOS 5 cocos2d 游戏开发实战(第 2 版)
XII
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
目 录
XIII
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
· · · · · · (
收起)