第1 章 计算机科学并不适合所有人 1
1.1 一些基础知识 1
1.2 常见游戏类型 1
1.2.1 冒险类游戏 1
1.2.2 动作类游戏 1
1.2.3 益智解谜类游戏 2
1.2.4 词汇类游戏 2
1.2.5 策略与模拟经营类游戏 3
1.2.6 角色扮演游戏 4
1.2.7 驾驶类游戏 4
1.2.8 桌面式和卡牌式游戏 4
1.3 常用开发术语 5
1.3.1 伪码 5
1.3.2 算法 5
1.3.3 过程式编程 5
1.3.4 面向对象编程 5
1.3.5 设计模式 6
1.3.6 类 6
1.3.7 Public、Protected、Private和Internal 6
1.4 游戏特有的开发术语 7
1.4.1 人工智能 7
1.4.2 游戏循环(或者说“主循环”) 7
1.4.3 游戏视角 8
1.4.4 卷动背景 8
1.4.5 区块式游戏 8
1.5 Flash 程序开发术语 8
1.5.1 舞台 9
1.5.2 显示对象 9
1.5.3 事件和侦听器 9
1.5.4 包 9
1.5.5 创作时事件、编译时事件及运行时事件 9
1.6 醒一醒 10
第2 章 最佳编程工具 11
2.1 倒叙几句 11
2.2 Flash 的一些优点 11
2.2.1 玩家占有率 12
2.2.2 灵活性 12
2.2.3 上市速度 12
2.2.4 美观性 12
2.3 白璧微瑕 13
2.3.1 缺点:代码编辑器 13
2.3.2 解决方案:使用附加工具 13
2.3.3 缺点:性能及内存管理 14
2.3.4 解决方案:使用第三方解决方案或自己创建 14
2.3.5 缺点:内容调试 15
2.3.6 解决方案:使用跟踪输出与自定义工具 15
2.3.7 缺点:缺乏内建游戏库 16
2.3.8 解决方案:自己开发工具或寻找开源工具 16
2.4 不要和Flash 对抗 17
2.5 Flash 所能创建的内容 17
2.5.1 动画与游戏 17
2.5.2 应用程序与游戏 17
2.5.3 Flash 与Flex 18
2.5.4 网站与游戏 18
2.5.5 Flash 与传统游戏开发 19
2.6 最佳创作工具 19
第3 章 一份计划抵得上1000 片阿司匹林 20
3.1 用一两句话来描述游戏 20
3.2 为包含所有游戏界面的游戏流程列出提纲或绘制线框图 20
3.3 概述游戏所使用的核心机制 21
3.4 列出所需的资源清单 23
3.5 列出游戏所需的技术清单 24
3.6 用UML 建模工具设计类图(可选) 26
3.7 规划步骤的快速回顾 27
第4 章 //太棒了! 28
4.1 适当的提醒 28
部分1 类 28
4.2 包 29
4.3 类就像文件一样 29
4.4 构造函数 29
4.5 常量、变量与方法 29
4.6 getter 与setter 方法 31
4.7 类标识符 32
4.8 继承与多态 33
4.9 接口 34
4.10 将Flash 中的资源与类链接起来 36
4.11 类与基类 37
4.12 使用没有类文件的导出元件 38
4.13 getDefinitionByName 与Casting 39
部分2 事件 40
4.14 dispatchEvent 方法 40
4.15 addEventListener 方法、removeEventListener 方法以及事件流程中的各阶段 41
4.16 事件的传播与取消 43
4.17 自定义事件 43
部分3 错误 45
4.18 try、catch、finally 45
4.19 自定义抛出错误 46
部分4 数据结构与列表 47
4.20 Object 47
4.21 数组 48
4.22 Vector 50
4.23 Dictionary 51
4.24 ByteArray 51
4.25 到底该使用哪种列表 51
4.26 自定义数据结构 52
部分5 让所有人都能读懂你的注释 52
4.27 底线 53
部分6 Flash 为什么会这么做 53
4.28 事件流程 53
4.29 帧脚本 54
4.30 使用多个SWF 文件 56
4.31 内存垃圾回收 57
4.32 本章小结 59
第5 章 管理资源与使用图像 60
5.1 小议组织库元件 61
5.2 使用图像 61
5.3 常用的光栅图像格式 62
5.3.1 压缩 65
5.3.2 平滑 66
5.3.3 解块 67
5.3.4 外部的图像编辑工具 67
5.4 要点 67
第6 章 让它动起来:ActionScript 动画 68
6.1 几个术语 68
6.1.1 缓动 69
6.1.2 序列 69
6.2 是否补间?这是个问题 69
6.3 一个由脚本驱动的简单射击游戏 70
6.3.1 Projectile 类 70
6.3.2 SimpleShooter 类 70
6.4 记忆力游戏:补间动画 72
6.4.1 MemoryCard 类 73
6.4.2 Memory 类 73
6.5 本章小结 76
第7 章 如雷贯耳:如何使用音频 77
7.1 常用音频格式 77
7.2 常用导出设置 78
7.3 使用外部文件 80
7.4 声音编辑工具 80
7.5 编写音效脚本 81
7.5.1 理解与声音有关的类 81
7.5.2 SoundEngine 类 82
7.5.3 使用SoundEngine 类 91
7.5.4 SoundMixer 类 92
第8 章 重塑“视频游戏” 93
8.1 视频编解码器 93
8.2 外部视频应用:过场与菜单 93
8.3 CutsceneManager 类 96
8.4 时间轴上的视频 100
8.4.1 文件尺寸 100
8.4.2 库:易于使用与杂乱无章 100
8.4.3 性能表现 100
8.4.4 自由的动态模糊 101
8.5 建立内部视频 101
8.6 本章小结 104
第9 章 XML 与动态内容 105
9.1 引入数据:理解URLLoader 类 105
9.2 XML 105
9.3 E4X 106
9.4 纵横字谜 106
9.4.1 CrosswordTile 类 109
9.4.2 CrosswordClue 类 113
9.4.3 CrosswordPuzzle 类 114
9.5 内容并非只有现成的:纵横字谜编辑器 122
9.6 数据传送 123
9.7 示例:XML与Flash Vars 的应用对比 124
9.8 本章小结 125
第10 章 就是一个词儿:数学 126
部分1 Math 类 126
10.1 几何学及三角学 126
10.2 简要介绍一下弧度与pi 值 130
10.3 Flash 中的3D 133
13.1.1 位置 134
13.1.2 旋转 134
13.1.3 透视投影 134
10.4 简单的TunnelShooter 范例 135
10.4.1 基本机制 136
10.4.2 所需类文件 136
10.4.3 Tunnel 类 136
部分2 物理学 145
10.5 标量 145
10.6 矢量 146
10.7 Vector3D 类 146
10.8 位移 146
10.9 速度 146
10.10 加速度 147
10.11 摩擦力 147
10.12 惯性 147
10.13 物理仿真与假象 147
10.14 真实性与期望值 147
10.15 范例:顶视角的驱动引擎 148
10.15.1 Vehicle 类 148
10.15.2 Time 类 149
10.15.3 Game 类 150
10.16 范例:顶视图且带有漂移效果的赛车游戏 153
10.17 本章小结 155
第11 章 别碰我 156
11.1 能力与需求 156
11.2 hitTestObject——最基本的检测方法 156
11.3 hitTestPoint——更先进的检测方法 157
11.4 半径/距离检测法——极适合圆形的检测方法 161
11.5 矩形边框检测法 162
11.5.1 新的Enemy 类 163
11.5.2 SimpleShooterCollisions类所新增的内容 164
11.5.3 该方法的一些不足之处 165
11.6 这些办法都不灵?那就用鸡尾酒疗法 167
第12 章 建筑师——由来已久的梦想 168
12.1 OOP 概念 168
12.1.1 封装 168
12.1.2 继承 169
12.1.3 多态性 169
12.1.4 接口 169
12.2 游戏开发中的实用OOP 技巧 170
12.3 单例模式:一种良好的文档模式 171
12.4 本章小结 173
第13 章 驿馆闲谈 174
13.1 简单地进行封装——类与容器 174
13.2 将有关数值存储到变量与常量中 175
13.3 不要信任舞台 176
13.4 不要使用不理解或不适用的架构或设计模式 176
13.5 要把握好向别人展示自己作品的最佳时机 177
13.6 本章小结 177
第14 章 MixUp——一个简单的游戏引擎 178
14.1 主文档 180
14.2 MixUP 类 180
14.3 Title 类 182
14.4 RulesPanel 类 183
14.5 Game 类 184
14.6 接口 186
14.7 GameBoard 类 188
14.8 SourceImageEmbedded 类 194
14.9 GameHistory 类与Results 类 196
14.10 SourceImageCamera 类 198
14.11 本章小结 200
第15 章 技术大融合:制作平台游戏 201
15.1 平台类型游戏 201
15.2 数据流程 202
15.3 游戏流程与功能 202
15.3.1 游戏背景设定 203
15.3.2 关卡设计及墙壁的作用 203
15.3.3 出口(portal) 203
15.3.4 玩家角色 203
15.3.5 物品 203
15.3.6 敌人 204
15.4 关卡文件格式以及资源结构 205
15.4.1 关卡的XML 文件 205
15.4.2 资源SWF 文件 207
15.4.3 游戏所用类的概述 208
15.5 引擎类 208
15.5.1 ISprite 接口 209
15.5.2 IPlayer 接口 209
15.5.3 IEnemy 接口 210
15.5.4 IItem 接口 210
15.5.5 IPortal 接口 211
15.5.6 IWall 接口 211
15.5.7 PlatformerEvent 类 212
15.5.8 PortalDestinations 类与PortalRequirement 类 212
15.5.9 PlatformerConfig 类 213
15.5.10 GridReference 类 213
15.5.11 CollisionGrid 类 215
15.5.12 PlatformerEngine 类 216
15.6 游戏实现类 230
15.7 资源类 232
15.7.1 Player 类 233
15.7.2 Enemy 类 234
15.7.3 Item 类 235
15.7.4 Portal 类与Wall 类 236
15.7.5 游戏中的资源 237
15.8 本章小结 239
第16 章 独乐不如众乐:开发多人游戏 240
16.1 RTMFP 240
16.2 Stratus 240
16.3 MixUp 多人游戏 241
16.3.1 游戏所用的类 241
16.3.2 SourceImageWebCamera 类 242
16.3.3 ConnectionPanel 类 245
16.3.4 Title 类 246
16.3.5 Results 类 247
16.3.6 MixUp 类 248
16.4 本章小结 250
第17 章 找到就干掉:猎虫行动 251
17.1 Bug 251
17.1.1 trace 251
17.1.2 FlashTracer 253
17.1.3 调试器 254
17.2 性能与优化 255
17.2.1 FrameRateProfiler 类 256
17.2.2 MemoryProfiler 类 258
17.2.3 Sample 包 259
17.3 本章小结 262
第18 章 当心恶贼 263
18.1 恶意使用 263
18.1.1 关闭不再需要的事件侦听器 263
18.1.2 为所要接受的输入设置最低延时 264
18.1.3 一经发现恶意使用就将游戏关闭264
18.2 数据保护 264
18.2.1 内存攻击 264
18.2.2 数据的散列加密 265
18.2.3 拆解数据 267
18.2.4 插入误导性数据 267
18.2.5 保护要发送与接收的数据 268
18.2.6 保护传输数据安全的散列加密法 268
18.2.7 矩阵加密法 268
18.3 SWF 文件保护 269
18.4 本章小结 269
附录A 摄像头与麦克风 270
附录B 本地化 276
附录C JSFL——情人们的JavaScript 283
后记 289
· · · · · · (
收起)