第1章 游戏设计 1
1.1游戏的开始 2
1.2主导思想 3
1.2.1适合iPhone的游戏 3
1.2.2故事情节 4
1.2.3名字的内涵 4
1.2.4游戏的目标 5
1.3游戏的元素 5
1.3.1时间 6
1.3.2生命 6
1.3.3健康值 6
1.3.4物品 7
1.3.5羊皮碎片 7
1.3.6门 8
1.3.7武器 8
1.3.8实体 8
1.3.9玩家 9
1.4小结 9
第2章 术语、技术和工具 10
2.1术语 10
2.1.1精灵 11
2.1.2精灵表 12
2.1.3动画 14
2.1.4点阵字 15
2.1.5贴图地图 16
2.1.6粒子系统 16
2.2碰撞检测 18
2.2.1人工智能 18
2.2.2游戏循环 19
2.3技术 21
2.3.1 Objective-C 21
2.3.2 Cocoa Touch 21
2.3.3 OpenGL ES 22
2.3.4 OpenAL 24
2.4工具 25
2.5小结 30
第3章 开始探索旅程 32
3.1在Xcode中创建项目 32
3.2程序的运行 34
3.3准备就绪 34
3.4程序代理 35
3.4.1查看头文件 36
3.4.2查看实现文件 37
3.5 EAGLView 40
3.5.1 EAGLView.h 40
3.5.2 EAGLView.m 41
3.6 ES 1 Renderer 48
3.6.1审查ES1 Renderer.h 48
3.6.2查看ES1 Renderer.m 49
3.6.3创建帧缓冲区和渲染缓冲区 50
3.6.4 render方法 52
3.6.5定义颜色值 54
3.6.6定位 55
3.7 OpenGL的工作原理 56
3.7.1对模型应用变换 56
3.7.2在屏幕上渲染 57
3.8小结 59
第4章 游戏循环 61
4.1时间控制就是一切 61
4.2冲突检测 62
4.3游戏循环 62
4.3.1基于帧的循环体 63
4.3.2基于时间的固定间隔循环体 64
4.4开始 65
4.4.1 EAGLView类的修改 65
4.4.2 EAGLView.m文件的修改 66
4.4.3 ES1Renderer类 68
4.4.4配置视图端口 71
4.5游戏场景和游戏控制器 72
4.5.1创建游戏控制器 72
4.5.2 GameController类 72
4.5.3创建单态类 74
4.5.4 GameController.m文件内部 74
4.5.5 AbstractScene类 76
4.5.6 GameScene类 77
4.6小结 79
4.7练习 79
第5章 图像渲染 81
5.1渲染入门 81
5.2四边形的渲染 82
5.3纹理映射 84
5.4交错顶点数组 86
5.5结构体 88
5.6图像渲染类 89
5.6.1 Texture2D类 89
5.6.2 TextureManager类 96
5.6.3 ImageRenderManager类 98
5.7 Image类 104
5.7.1初始化 105
5.7.2获取子图像 107
5.7.3复制图像 108
5.7.4渲染图像 108
5.7.5 getter和setter 111
5.8小结 112
5.9练习 112
第6章 精灵表 113
6.1精灵表简介 113
6.1.1简单精灵表 113
6.1.2复杂精灵表 114
6.2使用Zwoptex 116
6.3 SpriteSheet类 117
6.3.1初始化 117
6.3.2提取精灵 120
6.4 PackedSpriteSheet类 121
6.4.1初始化 121
6.4.2解析控制文件 122
6.4.3提取精灵 123
6.5小结 123
6.6练习 124
第7章 动画 125
7.1动画篇的项目 125
7.2动画简介 125
7.2.1帧 126
7.2.2状态 126
7.2.3类型 126
7.2.4方向 126
7.2.5跳动帧 126
7.3 Animation类 127
7.3.1初始化 127
7.3.2添加帧 128
7.3.3更新动画 128
7.3.4渲染动画 130
7.3.5完成 131
7.4小结 133
7.5练习 133
第8章 点阵字 134
8.1点阵字项目 134
8.2点阵字简介 134
8.3创建点阵字精灵表 135
8.4 BitmapFont类 137
8.5与C语言的关系 138
8.5.1初始化方法 138
8.5.2解析控制文件 139
8.6渲染文本 142
8.6.1渲染合理的文本 143
8.6.2文本宽度和高度 145
8.6.3重新分配 146
8.7小结 146
8.8练习 147
第9章 贴图地图 148
9.1贴图地图入门 148
9.2贴图地图简介 148
9.3贴图地图编辑器 150
9.3.1贴图调色板 151
9.3.2图层 151
9.4创建贴图地图 152
9.4.1新建一个贴图集合 152
9.4.2创建地图图层 153
9.4.3创建对象图层 154
9.4.4绘制地图 154
9.4.5放置对象 154
9.5认识Tiled配置文件 155
9.5.1 map元素 155
9.5.2 tileset元素 155
9.5.3 layer元素 156
9.5.4 objectgroup元素 157
9.6地图类 157
9.6.1 Layer类 158
9.6.2 TileSet类 162
9.6.3 TiledMap类 163
9.6.4初始化 165
9.6.5解析地图文件 166
9.6.6创建图层图像 174
9.6.7图层渲染 175
9.6.8获取贴图信息 177
9.7小结 178
9.8练习 178
第10章 粒子发射器 179
10.1粒子发射项目 179
10.1.1粒子系统简介 180
10.1.2粒子系统参数 181
10.2粒子的生命周期 182
10.2.1粒子的诞生 182
10.2.2粒子生存 183
10.2.3粒子消亡 183
10.2.4粒子重生 184
10.3粒子发射器的配置 184
10.4粒子发射器类 185
10.4.1 TBXMLParticleAdditions类 185
10.4.2 ParticleEmitter类 187
10.5开始游戏 198
10.6小结 199
第11章 声音 200
11.1声音项目 200
11.2 iPhone的声音简介 200
11.2.1音频会话 200
11.2.2播放音乐 202
11.2.3播放音效 202
11.2.4创建音效 204
11.2.5立体声与单声道 205
11.3声音管理器类 205
11.4音效管理 219
11.4.1载入音效 220
11.4.2播放音效 223
11.4.3停止播放音效 225
11.4.4设置音效和监听器位置 226
11.5处理声音播放干扰 227
11.6小结 228
第12章 用户输入 230
12.1用户输入项目 230
12.2用户输入简介 231
12.3处理触控事件 232
12.3.1 touchesBegan阶段 234
12.3.2 touchesMoved阶段 235
12.3.3 touchesEnded阶段 236
12.4处理敲击 237
12.5加速器事件 238
12.6小结 240
第13章 游戏界面 241
13.1游戏界面项目 241
13.2 OpenGL ES界面 242
13.2.1界面渲染 242
13.2.2按钮边界定义 245
13.2.3点击处理 245
13.2.4可视化边界 246
13.2.5转换处理 248
13.2.6 OpenGL ES定向 249
13.3 UIKit界面 251
13.3.1创建界面 252
13.3.2界面连接 254
13.3.3 UIKit定向 257
13.3.4显示或隐藏UIKit界面 259
13.4小结 261
第14章 游戏对象和实体 262
14.1游戏对象和实体项目 262
14.2游戏对象 263
14.2.1 AbstractObject类 263
14.2.2 EnergyObject类 265
14.3游戏实体 272
14.3.1 AbstractEntity类 273
14.3.2人工智能 275
14.3.3 Player实体类 276
14.4保存游戏对象或实体 284
14.5小结 286
第15章 碰撞检测 287
15.1碰撞检测简介 287
15.2基于帧与基于时间 289
15.3轴对齐边界框 289
15.4检测碰撞 290
15.5碰撞地图 291
15.6实体与地图间的碰撞检测 293
15.7实体与实体间的碰撞检测 294
15.8小结 296
第16章 组装起来 297
16.1摄像机 297
16.2保存游戏状态和设置 299
16.2.1保存游戏状态 299
16.2.2载入游戏状态 300
16.2.3保存游戏设置 302
16.2.4载入游戏设置 303
16.3保存高分 304
16.3.1添加分数 306
16.3.2保存高分 307
16.3.3载入高分 307
16.4性能和测试 308
16.4.1使用仪表 309
16.4.2 Leaks仪表 310
16.4.3使用OpenGL ES仪表 312
16.4.4用Thumb编译 314
16.5 β测试 314
16.5.1多种设备类型 315
16.5.2反馈 316
16.6小结 316