书籍详情
实战Flash游戏开发
作者:(美) 格里菲斯(Griffith,C.) 著,李鑫 译
出版社:人民邮电出版社
出版时间:2011-06-01
ISBN:9787115252814
定价:¥55.00
购买这本书可以去
内容简介
Flash因其插件文件尺寸小、性能优秀而得到全球网民的青睐,这也使得Flash成为网络休闲游戏开发的首选平台。游戏开发融合了很多技术与表现风格,除了要有高质量的代码、迷人的艺术设计和良好的用户界面,很重要的一点是要让玩家觉得好玩。本书就是要让读者利用Flash设计出这样的游戏。从游戏开发基本术语和概念,到整个游戏流程的规划,再到音频和可视化资源的管理和游戏逻辑的处理,乃至一些关于代码及库的组织方式,本书无所不?。作者以自己近10年的Flash开发经验为基础,总结了一些实用的游戏开发原则。本书最后还介绍了在大型游戏开发中如何与团队其他成员共享资源,以及一些Flash优化方法。本书配套网站www.flashgamebook.com上提供了书中全部的源文件,读者可以借用这些资源来开发自己的产品。
作者简介
Christopher Griffith Blockdot公司高级游戏开发师,拥有近十年的Flash应用及游戏开发经验,客户包括乐高、微软、美国航空公司、百事等知名企业。译者简介:李鑫 资深CG动画讲师及插画师,深度关切游戏与拉布拉多,喜欢研究小逻辑,最近空闲时在制作原创动画《瑜的门票》。相信交互式媒体的发展如一切美好事物般会在不经意间抹上眉梢,沿路风景比站台重要。
目录
第1 章 计算机科学并不适合所有人
1.1 一些基础知识
1.2 常见游戏类型
1.2.1 冒险类游戏
1.2.2 动作类游戏
1.2.3 益智解谜类游戏
1.2.4 词汇类游戏
1.2.5 策略与模拟经营类游戏
1.2.6 角色扮演游戏
1.2.7 驾驶类游戏
1.2.8 桌面式和卡牌式游戏
1.3 常用开发术语
1.3.1 伪码
1.3.2 算法
1.3.3 过程式编程
1.3.4 面向对象编程
1.3.5 设计模式
1.3.6 类
1.3.7 Public、Protected、Private和Internal
1.4 游戏特有的开发术语
1.4.1 人工智能
1.4.2 游戏循环(或者说“主循环”)
1.4.3 游戏视角
1.4.4 卷动背景
1.4.5 区块式游戏
1.5 Flash 程序开发术语
1.5.1 舞台
1.5.2 显示对象
1.5.3 事件和侦听器
1.5.4 包
1.5.5 创作时事件、编译时事件及运行时事件
1.6 醒一醒
第2 章 最佳编程工具
2.1 倒叙几句
2.2 Flash 的?些优点
2.2.1 玩家占有率
2.2.2 灵活性
2.2.3 上市速度
2.2.4 美观性
2.3 白璧微瑕
2.3.1 缺点:代码编辑器
2.3.2 解决方案:使用附加工具
2.3.3 缺点:性能及内存管理
2.3.4 解决方案:使用第三方解决方案或自己创建
2.3.5 缺点:内容调试
2.3.6 解决方案:使用跟踪输出与自定义工具
2.3.7 缺点:缺乏内建游戏库
2.3.8 解决方案:自己开发工具或寻找开源工具
2.4 不要和Flash 对抗
2.5 Flash 所能创建的内容
2.5.1 动画与游戏
2.5.2 应用程序与游戏
2.5.3 Flash 与Flex
2.5.4 网站与游戏
2.5.5 Flash 与传统游戏开发
2.6 最佳创作工具
第3 章 一份计划抵得上1000 片阿司匹林
3.1 用一两句话来描述游戏
3.2 为包含所有游戏界面的游戏流程列出提纲或绘制线框图
3.3 概述游戏所使用的核心机制
3.4 列出所需的资源清单
3.5 列出游戏所需的技术清单
3.6 用UML 建模工具设计类图(可选)
3.7 规划步骤的快速回顾
第4 章 //太棒了!
4.1 适当的提醒
部分1 类
4.2 包
4.3 类就像文件一样
4.4 构造函数
4.5 常量、变量与方法
4.6 getter 与setter 方法
4.7 类标识符
4.8 继承与多态
4.9 接口
4.10 将Flash 中的资源与类链接起来
4.11 类与基类
4.12 使用没有类文件的导出元件
4.13 getDefinitionByName 与Casting
部分2 事件
4.14 dispatchEvent 方法
4.15 addEventListener 方法、removeEventListener方法以及事件流程中的各阶段
4.16 事件的传播与取消
4.17 自定义事件
部分3 错误
4.18 try、catch、finally
4.19 自定义抛出错误
部分4 数据结构与列表
4.20 Object
4.21 数组
4.22 Vector
4.23 Dictionary
4.24 ByteArray
4.25 到底该使用哪种列表
4.26 自定义数据结构
部分5 让所有人都能读懂你的注释
4.27 底线
部分6 Flash 为什么会这么做
4.28 事件流程
4.29 帧脚本
4.30 使用多个SWF 文件
4.31 内存垃圾回收
4.32 本章小结
第5 章 管理资源与使用图像
5.1 小议组织库元件
5.2 使用图像
5.3 常用的光栅图像格式
5.3.1 压缩
5.3.2 平滑
5.3.3 解块
5.3.4 外部的图像编辑工具
5.4 要点
第6 章 让它动起来:ActionScript 动画
6.1 几个术语
6.1.1 缓动
6.1.2 序列
6.2 是否补间?这是个问题
6.3 一个由脚本驱动的简单射击游戏
6.3.1 Projectile 类
6.3.2 SimpleShooter 类
6.4 记忆力游戏:补间动画
6.4.1 MemoryCard 类
6.4.2 Memory 类
6.5 本章小结
第7 章 如雷贯耳:如何使用音频
7.1 常用音频格式
7.2 常用导出设置
7.3 使用外部文件
7.4 声音编辑工具
7.5 编写音效脚本
7.5.1 理解与声音有关的类
7.5.2 SoundEngine 类
7.5.3 使用SoundEngine 类
7.5.4 SoundMixer 类
第8 章 重塑“视频游戏”
8.1 视频编解码器
8.2 外部视频应用:过场与菜单
8.3 CutsceneManager 类
8.4 时间轴上的视频
8.4.1 文件尺寸
8.4.2 库:易于使用与杂乱无章
8.4.3 性能表现
8.4.4 自由的动态模糊
8.5 建立内部视频
8.6 本章小结
第9 章 XML 与动态内容
9.1 引入数据:理解URLLoader 类
9.2 XML
9.3 E4X
9.4 纵横字谜
9.4.1 CrosswordTile 类
9.4.2 CrosswordClue 类
9.4.3 CrosswordPuzzle 类
9.5 内容并非只有现成的:纵横字谜编辑器
9.6 数据传送
9.7 示例:XML与Flash Vars 的应用对比
9.8 本章小结
第10 章 就是一个词儿:数学
部分1 Math 类
10.1 几何学及三角学
10.2 简要介绍一下弧度与pi 值
10.3 Flash 中的3D
13.1.1 位置
13.1.2 旋转
13.1.3 透视投影
10.4 简单的TunnelShooter 范例
10.4.1 基本机制
10.4.2 所需类文件
10.4.3 Tunnel 类
部分2 物理学
10.5 标量
10.6 矢量
10.7 Vector3D 类
10.8 位移
10.9 速度
10.10 加速度
10.11 摩擦力
10.12 惯性
10.13 物理仿真与假象
10.14 真实性与期望值
10.15 范例:顶视角的驱动引擎
10.15.1 Vehicle 类
10.15.2 Time 类
10.15.3 Game 类
10.16 范例:顶视图且带有漂移效果的赛车游戏
10.17 本章小结
第11 章 别碰我
11.1 能力与需求
11.2 hitTestObject——最基本的检测方法
11.3 hitTestPoint——更先进的检测方法
11.4 半径/距离检测法——极适合圆形的检测方法
11.5 矩形边框检测法
11.5.1 新的Enemy 类
11.5.2 SimpleShooterCollisions类所新增的内容
11.5.3 该方法的一些不足之处
11.6 这些办法都不灵?那就用鸡尾酒疗法
第12 章 建筑师——由来已?的梦想
12.1 OOP 概念
12.1.1 封装
12.1.2 继承
12.1.3 多态性
12.1.4 接口
12.2 游戏开发中的实用OOP 技巧
12.3 单例模式:一种良好的文档模式
12.4 本章小结
第13 章 驿馆闲谈
13.1 简单地进行封装——类与容器
13.2 将有关数值存储到变量与常量中
13.3 不要信任舞台
13.4 不要使用不理解或不适用的架构或设计模式
13.5 要把握好向别人展示自己作品的最佳时机
13.6 本章小结
第14 章 MixUp——一个简单的游戏引擎
14.1 主文档
14.2 MixUP 类
14.3 Title 类
14.4 RulesPanel 类
14.5 Game 类
14.6 接口
14.7 GameBoard 类
14.8 SourceImageEmbedded 类
14.9 GameHistory 类与Results 类
14.10 SourceImageCamera 类
14.11 本章小结
第15 章 技术大融合:制作平台游戏
15.1 平台类型游戏
15.2 数据流程
15.3 游戏流程与功能
15.3.1 游戏背景设定
15.3.2 关卡设计及墙壁的作用
15.3.3 出口(portal)
15.3.4 玩家角色
15.3.5 物品
15.3.6 敌人
15.4 关卡文件格式以及资源结构
15.4.1 关卡的XML 文件
15.4.2 资源SWF 文件
15.4.3 游戏所用类的概述
15.5 引擎类
15.5.1 ISprite 接口
15.5.2 IPlayer 接口
15.5.3 IEnemy 接口
15.5.4 IItem 接口
15.5.5 IPortal 接口
15.5.6 IWall 接口
15.5.7 PlatformerEvent 类
15.5.8 PortalDestinations 类与PortalRequirement 类
15.5.9 PlatformerConfig 类
15.5.10 GridReference 类
15.5.11 CollisionGrid 类
15.5.12 PlatformerEngine 类
15.6 游戏实现类
15.7 资源类
15.7.1 Player 类
15.7.2 Enemy 类
15.7.3 Item 类
15.7.4 Portal 类与Wall 类
15.7.5 游戏中的资源
15.8 本章小结
第16 章 独乐不如众乐:开发多人游戏
16.1 RTMFP
16.2 Stratus
16.3 MixUp 多人游戏
16.3.1 游戏所用的类
16.3.2 SourceImageWebCamera 类
16.3.3 ConnectionPanel 类
16.3.4 Title 类
16.3.5 Results 类
16.3.6 MixUp 类
16.4 本章小结
第17 章 找到就干掉:猎虫行动
17.1 Bug
17.1.1 trace
17.1.2 FlashTracer
17.1.3 调试器
17.2 性能与优化
17.2.1 FrameRateProfiler 类
17.2.2 MemoryProfiler 类
17.2.3 Sample 包
17.3 本章小结
第18 章 当心恶贼
18.1 恶意使用
18.1.1 关闭不再需要的事件侦听器
18.1.2 为所要接受的输入设置最低延时
18.1.3 一经发现恶意使用就将游戏关闭
18.2 数据保护
18.2.1 内存攻击
18.2.2 数据的散列加密
18.2.3 拆解数据
18.2.4 插入误导性数据
18.2.5 保护要发送与接收的数据
18.2.6 保护传输数据安全的散列加密法
18.2.7 矩阵加密法
18.3 SWF 文件保护
18.4 本章小结
附录A 摄像头与麦克风
附录B 本地化
附录C JSFL——情人们的JavaScript
后记
1.1 一些基础知识
1.2 常见游戏类型
1.2.1 冒险类游戏
1.2.2 动作类游戏
1.2.3 益智解谜类游戏
1.2.4 词汇类游戏
1.2.5 策略与模拟经营类游戏
1.2.6 角色扮演游戏
1.2.7 驾驶类游戏
1.2.8 桌面式和卡牌式游戏
1.3 常用开发术语
1.3.1 伪码
1.3.2 算法
1.3.3 过程式编程
1.3.4 面向对象编程
1.3.5 设计模式
1.3.6 类
1.3.7 Public、Protected、Private和Internal
1.4 游戏特有的开发术语
1.4.1 人工智能
1.4.2 游戏循环(或者说“主循环”)
1.4.3 游戏视角
1.4.4 卷动背景
1.4.5 区块式游戏
1.5 Flash 程序开发术语
1.5.1 舞台
1.5.2 显示对象
1.5.3 事件和侦听器
1.5.4 包
1.5.5 创作时事件、编译时事件及运行时事件
1.6 醒一醒
第2 章 最佳编程工具
2.1 倒叙几句
2.2 Flash 的?些优点
2.2.1 玩家占有率
2.2.2 灵活性
2.2.3 上市速度
2.2.4 美观性
2.3 白璧微瑕
2.3.1 缺点:代码编辑器
2.3.2 解决方案:使用附加工具
2.3.3 缺点:性能及内存管理
2.3.4 解决方案:使用第三方解决方案或自己创建
2.3.5 缺点:内容调试
2.3.6 解决方案:使用跟踪输出与自定义工具
2.3.7 缺点:缺乏内建游戏库
2.3.8 解决方案:自己开发工具或寻找开源工具
2.4 不要和Flash 对抗
2.5 Flash 所能创建的内容
2.5.1 动画与游戏
2.5.2 应用程序与游戏
2.5.3 Flash 与Flex
2.5.4 网站与游戏
2.5.5 Flash 与传统游戏开发
2.6 最佳创作工具
第3 章 一份计划抵得上1000 片阿司匹林
3.1 用一两句话来描述游戏
3.2 为包含所有游戏界面的游戏流程列出提纲或绘制线框图
3.3 概述游戏所使用的核心机制
3.4 列出所需的资源清单
3.5 列出游戏所需的技术清单
3.6 用UML 建模工具设计类图(可选)
3.7 规划步骤的快速回顾
第4 章 //太棒了!
4.1 适当的提醒
部分1 类
4.2 包
4.3 类就像文件一样
4.4 构造函数
4.5 常量、变量与方法
4.6 getter 与setter 方法
4.7 类标识符
4.8 继承与多态
4.9 接口
4.10 将Flash 中的资源与类链接起来
4.11 类与基类
4.12 使用没有类文件的导出元件
4.13 getDefinitionByName 与Casting
部分2 事件
4.14 dispatchEvent 方法
4.15 addEventListener 方法、removeEventListener方法以及事件流程中的各阶段
4.16 事件的传播与取消
4.17 自定义事件
部分3 错误
4.18 try、catch、finally
4.19 自定义抛出错误
部分4 数据结构与列表
4.20 Object
4.21 数组
4.22 Vector
4.23 Dictionary
4.24 ByteArray
4.25 到底该使用哪种列表
4.26 自定义数据结构
部分5 让所有人都能读懂你的注释
4.27 底线
部分6 Flash 为什么会这么做
4.28 事件流程
4.29 帧脚本
4.30 使用多个SWF 文件
4.31 内存垃圾回收
4.32 本章小结
第5 章 管理资源与使用图像
5.1 小议组织库元件
5.2 使用图像
5.3 常用的光栅图像格式
5.3.1 压缩
5.3.2 平滑
5.3.3 解块
5.3.4 外部的图像编辑工具
5.4 要点
第6 章 让它动起来:ActionScript 动画
6.1 几个术语
6.1.1 缓动
6.1.2 序列
6.2 是否补间?这是个问题
6.3 一个由脚本驱动的简单射击游戏
6.3.1 Projectile 类
6.3.2 SimpleShooter 类
6.4 记忆力游戏:补间动画
6.4.1 MemoryCard 类
6.4.2 Memory 类
6.5 本章小结
第7 章 如雷贯耳:如何使用音频
7.1 常用音频格式
7.2 常用导出设置
7.3 使用外部文件
7.4 声音编辑工具
7.5 编写音效脚本
7.5.1 理解与声音有关的类
7.5.2 SoundEngine 类
7.5.3 使用SoundEngine 类
7.5.4 SoundMixer 类
第8 章 重塑“视频游戏”
8.1 视频编解码器
8.2 外部视频应用:过场与菜单
8.3 CutsceneManager 类
8.4 时间轴上的视频
8.4.1 文件尺寸
8.4.2 库:易于使用与杂乱无章
8.4.3 性能表现
8.4.4 自由的动态模糊
8.5 建立内部视频
8.6 本章小结
第9 章 XML 与动态内容
9.1 引入数据:理解URLLoader 类
9.2 XML
9.3 E4X
9.4 纵横字谜
9.4.1 CrosswordTile 类
9.4.2 CrosswordClue 类
9.4.3 CrosswordPuzzle 类
9.5 内容并非只有现成的:纵横字谜编辑器
9.6 数据传送
9.7 示例:XML与Flash Vars 的应用对比
9.8 本章小结
第10 章 就是一个词儿:数学
部分1 Math 类
10.1 几何学及三角学
10.2 简要介绍一下弧度与pi 值
10.3 Flash 中的3D
13.1.1 位置
13.1.2 旋转
13.1.3 透视投影
10.4 简单的TunnelShooter 范例
10.4.1 基本机制
10.4.2 所需类文件
10.4.3 Tunnel 类
部分2 物理学
10.5 标量
10.6 矢量
10.7 Vector3D 类
10.8 位移
10.9 速度
10.10 加速度
10.11 摩擦力
10.12 惯性
10.13 物理仿真与假象
10.14 真实性与期望值
10.15 范例:顶视角的驱动引擎
10.15.1 Vehicle 类
10.15.2 Time 类
10.15.3 Game 类
10.16 范例:顶视图且带有漂移效果的赛车游戏
10.17 本章小结
第11 章 别碰我
11.1 能力与需求
11.2 hitTestObject——最基本的检测方法
11.3 hitTestPoint——更先进的检测方法
11.4 半径/距离检测法——极适合圆形的检测方法
11.5 矩形边框检测法
11.5.1 新的Enemy 类
11.5.2 SimpleShooterCollisions类所新增的内容
11.5.3 该方法的一些不足之处
11.6 这些办法都不灵?那就用鸡尾酒疗法
第12 章 建筑师——由来已?的梦想
12.1 OOP 概念
12.1.1 封装
12.1.2 继承
12.1.3 多态性
12.1.4 接口
12.2 游戏开发中的实用OOP 技巧
12.3 单例模式:一种良好的文档模式
12.4 本章小结
第13 章 驿馆闲谈
13.1 简单地进行封装——类与容器
13.2 将有关数值存储到变量与常量中
13.3 不要信任舞台
13.4 不要使用不理解或不适用的架构或设计模式
13.5 要把握好向别人展示自己作品的最佳时机
13.6 本章小结
第14 章 MixUp——一个简单的游戏引擎
14.1 主文档
14.2 MixUP 类
14.3 Title 类
14.4 RulesPanel 类
14.5 Game 类
14.6 接口
14.7 GameBoard 类
14.8 SourceImageEmbedded 类
14.9 GameHistory 类与Results 类
14.10 SourceImageCamera 类
14.11 本章小结
第15 章 技术大融合:制作平台游戏
15.1 平台类型游戏
15.2 数据流程
15.3 游戏流程与功能
15.3.1 游戏背景设定
15.3.2 关卡设计及墙壁的作用
15.3.3 出口(portal)
15.3.4 玩家角色
15.3.5 物品
15.3.6 敌人
15.4 关卡文件格式以及资源结构
15.4.1 关卡的XML 文件
15.4.2 资源SWF 文件
15.4.3 游戏所用类的概述
15.5 引擎类
15.5.1 ISprite 接口
15.5.2 IPlayer 接口
15.5.3 IEnemy 接口
15.5.4 IItem 接口
15.5.5 IPortal 接口
15.5.6 IWall 接口
15.5.7 PlatformerEvent 类
15.5.8 PortalDestinations 类与PortalRequirement 类
15.5.9 PlatformerConfig 类
15.5.10 GridReference 类
15.5.11 CollisionGrid 类
15.5.12 PlatformerEngine 类
15.6 游戏实现类
15.7 资源类
15.7.1 Player 类
15.7.2 Enemy 类
15.7.3 Item 类
15.7.4 Portal 类与Wall 类
15.7.5 游戏中的资源
15.8 本章小结
第16 章 独乐不如众乐:开发多人游戏
16.1 RTMFP
16.2 Stratus
16.3 MixUp 多人游戏
16.3.1 游戏所用的类
16.3.2 SourceImageWebCamera 类
16.3.3 ConnectionPanel 类
16.3.4 Title 类
16.3.5 Results 类
16.3.6 MixUp 类
16.4 本章小结
第17 章 找到就干掉:猎虫行动
17.1 Bug
17.1.1 trace
17.1.2 FlashTracer
17.1.3 调试器
17.2 性能与优化
17.2.1 FrameRateProfiler 类
17.2.2 MemoryProfiler 类
17.2.3 Sample 包
17.3 本章小结
第18 章 当心恶贼
18.1 恶意使用
18.1.1 关闭不再需要的事件侦听器
18.1.2 为所要接受的输入设置最低延时
18.1.3 一经发现恶意使用就将游戏关闭
18.2 数据保护
18.2.1 内存攻击
18.2.2 数据的散列加密
18.2.3 拆解数据
18.2.4 插入误导性数据
18.2.5 保护要发送与接收的数据
18.2.6 保护传输数据安全的散列加密法
18.2.7 矩阵加密法
18.3 SWF 文件保护
18.4 本章小结
附录A 摄像头与麦克风
附录B 本地化
附录C JSFL——情人们的JavaScript
后记
猜您喜欢