![]() 作者:[美] Christopher Griffith 出版社: 人民邮电出版社 原作名: Real-World Flash Game Development: 译者:李 鑫/杨海玲 出版年: 2012-5-15 页数: 428 定价: 79.00元 装帧: 平装 ISBN: 9787115276452 内容简介 · · · · · ·内容简介: Flash因其插件文件尺寸小、性能优异而得到全球网民的青睐,这也使得Flash成为网络休闲游戏开发的首选平台。 游戏开发融合了很多技术与表现风格,除了要有高质量的代码、迷人的艺术设计和良好的用户界面,更重要的一点是要让玩家觉得好玩。本书教会读者利用Flash设计出这样的游戏。作者以自己十多年的Flash开发经验为基础,总结了一些实用的游戏开发原则,并将游戏开发基本术语和概念、整个游戏流程的规划、音频和可视化资源的管理以及游戏逻辑处理、一些代码及库的组织方式以及Flash移动开发的内容,都囊括在这本书中,极具学习和实用价值。 本书在第一版的基础上进行了全面修订,加入了包括移动开发在内的很多高级内容,适合所有Flash开发人员。 作者简介 · · · · · ·作者简介: Christopher Griffith Blockdot公司高级游戏开发师,拥有近十年的Flash应用及游戏开发经验,客户包括乐高、微软、美国航空、百事等知名企业。 目录 · · · · · ·目 录第1章 计算机科学并不适合所有人 1 1.1 一些基础知识 1 1.2 常见游戏类型 1 1.2.1 冒险类游戏 1 · · · · · ·() 目 录 第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 7 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程序开发术语 9 1.5.1 舞台 9 1.5.2 显示对象 9 1.5.3 事件和侦听器 9 1.5.4 包 9 1.5.5 创作时事件、编译时事件及 运行时事件 10 1.6 醒一醒 10 第2章 最佳编程工具 11 2.1 倒叙几句 11 2.2 Flash的一些优点 12 2.2.1 玩家占有率 12 2.2.2 灵活性 12 2.2.3 上市速度 12 2.2.4 美观性 13 2.3 白璧微瑕 13 2.3.1 缺点:代码编辑器 13 2.3.2 解决方案:使用附加工具 14 2.3.3 缺点:性能及内存管理 14 2.3.4 解决方案:使用第三方解 决方案或自己创建 15 2.3.5 缺点:内容调试 16 2.3.6 解决方案:使用跟踪输出 与自定义工具 16 2.3.7 缺点:缺乏内建游戏库和 工具 17 2.3.8 解决方案:自己开发工具 或寻找开源工具 17 2.4 不要和Flash对抗 17 2.5 Flash所能创建的内容 18 2.5.1 动画与游戏 18 2.5.2 应用程序与游戏 18 2.5.3 网站与游戏 18 2.5.4 Flash与传统游戏开发 19 2.6 最佳创作工具 19 第3章 一份计划抵得上1000片阿司 匹林 20 3.1 步骤1 20 3.2 步骤2 20 3.3 步骤3 21 3.4 步骤4 23 3.5 步骤5 24 3.6 步骤6(可选) 26 第4章 //注释太棒了! 29 4.1 适当的提醒 29 4.2 部分1:类 29 4.2.1 包 30 4.2.2 类就像文件一样 30 4.2.3 构造函数 30 4.2.4 常量、变量与方法 31 4.2.5 getter与setter方法 32 4.2.6 类标识符 33 4.2.7 继承与多态 34 4.2.8 接口 36 4.2.9 将Flash中的资源与类链接 起来 38 4.2.10 类与基类 39 4.2.11 使用没有类文件的导出元件 41 4.2.12 getDefinitionByName与 Casting 41 4.3 部分2:事件 42 4.3.1 dispatchEvent方法 42 4.3.2 addEventListener方法、removeEventListener方法以及 事件流程中的各阶段 43 4.3.3 事件的传播与取消 46 4.3.4 自定义事件 46 4.4 部分3:错误 47 4.4.1 try、catch、finally 48 4.4.2 抛出自定义错误 49 4.5 部分4:数据结构与列表 50 4.5.1 Object 50 4.5.2 数组 51 4.5.3 Vector 53 4.5.4 Dictionary 53 4.5.5 ByteArray 54 4.5.6 到底该使用哪种列表 54 4.5.7 自定义数据结构 55 4.6 部分5:让所有人都能读懂你的注释 55 4.7 部分6:Flash为什么会这么做 56 4.7.1 事件流程 56 4.7.2 帧脚本 57 4.7.3 使用多个SWF文件 59 4.7.4 内存垃圾回收 60 4.8 本章小结 62 第5章 最低要求与架构师所采用的 方法 63 5.1 简单地进行封装——类与容器 63 5.2 将有关数值存储到变量与常量中 64 5.3 不要信任舞台 65 5.4 不要使用不理解或不适用的架构或 设计模式 65 5.5 要把握好向别人展示自己作品的 最佳时机 66 5.6 转换到架构 66 5.7 OOP概念 66 5.7.1 封装 67 5.7.2 继承 67 5.7.3 多态性 68 5.7.4 接口 68 5.8 游戏开发中的实用OOP技巧 69 5.9 单例模式:一种良好的文档模式 70 5.10 本章小结 72 第6章 管理资源与使用图像 73 6.1 一种更好的文件格式 73 6.2 小议组织库元件 74 6.3 使用图像 75 6.4 常用的光栅图像格式 76 6.4.1 压缩 79 6.4.2 平滑 80 6.4.3 解块 80 6.4.4 外部的图像编辑工具 80 6.5 本章小结 82 第7章 让它动起来:ActionScript 动画 83 7.1 几个术语 83 7.1.1 缓动 83 7.1.2 序列 84 7.2 是否补间?这是个问题 84 7.3 由脚本驱动的简单射击游戏 85 7.3.1 Projectile类 85 7.3.2 SimpleShooter类 85 7.4 记忆力游戏:补间动画 88 7.4.1 MemoryCard类 88 7.4.2 Memory类 89 7.5 本章小结 93 第8章 如雷贯耳:如何使用音频 94 8.1 常用音频格式 94 8.2 常用导出设置 95 8.3 使用外部文件 97 8.4 声音编辑工具 98 8.5 编写音效脚本 98 8.5.1 理解与声音有关的类 99 8.5.2 SoundEngine类 99 8.5.3 使用SoundEngine类 111 8.5.4 SoundMixer类 114 第9章 重塑“视频游戏” 116 9.1 视频编解码器 116 9.2 外部视频应用:过场与菜单 116 9.3 CutsceneManager类 119 9.4 时间轴上的视频 125 9.4.1 文件尺寸 125 9.4.2 库:易于使用与杂乱无章 126 9.4.3 性能表现 126 9.4.4 自由的动态模糊 126 9.5 建立内部视频 126 9.6 本章小结 129 第10章 XML与动态内容 130 10.1 引入数据:理解URLLoader类 130 10.2 XML 130 10.3 E4X 131 10.4 纵横字谜 132 10.4.1 CrosswordTile类 135 10.4.2 CrosswordClue类 138 10.4.3 CrosswordPuzzle类 140 10.5 内容并非只有现成的:纵横字谜 编辑器 150 10.6 数据传送 151 10.7 示例:XML与Flash Vars的应用 对比 151 10.8 本章小结 153 第11章 就是一个词儿:数学 154 11.1 Math类 154 11.2 部分1:几何学及三角学 154 11.3 简要介绍一下弧度与Pi值 158 11.4 Flash中的3D 161 11.4.1 位置 162 11.4.2 旋转 162 11.5 透视投影 163 11.6 Simple TunnelShooter范例 164 11.6.1 基本机制 164 11.6.2 所需类文件 164 11.6.3 Tunnel类 165 11.7 部分2:物理学 179 11.7.1 标量 179 11.7.2 矢量 179 11.7.3 Vector3D类 179 11.7.4 位移 180 11.7.5 速度 180 11.7.6 加速度 180 11.7.7 摩擦力 180 11.7.8 惯性 180 11.7.9 物理仿真与假象 181 11.7.10 真实性与期望值 181 11.8 范例:顶视角的驱动引擎 181 11.8.1 Vehicle类 181 11.8.2 Time类 184 11.8.3 Game类 185 11.9 范例:顶视角且带有漂移效果的 赛车游戏 189 11.10 本章小结 192 第12章 别碰我:碰撞检测技术 193 12.1 能力与需求 193 12.2 hitTestObject——最基本的检测 方法 193 12.3 hitTestPoint——更先进的检测 方法 194 12.4 半径/距离检测法——极适合圆形 的检测方法 199 12.5 矩形边框检测法 201 12.5.1 新的Enemy类 201 12.5.2 SimpleShooterCollisions类 所新增的内容 202 12.5.3 该方法的一些不足之处 204 12.6 像素级精确的碰撞侦测与物理 仿真 205 12.7 这些办法都不灵?那就用鸡尾酒 疗法 206 第13章 MixUp——简单的游戏引擎 207 13.1 主文档 209 13.2 MixUP类 209 13.3 Title类 212 13.4 RulesPanel类 212 13.5 Game类 213 13.6 接口 216 13.7 GameBoard类 218 13.8 SourceImageEmbedded类 225 13.9 GameHistory类与Results类 227 13.10 SourceImageCamera类 229 13.11 本章小结 232 第14章 技术大融合:制作平台游戏 233 14.1 平台类型游戏 233 14.2 数据流程 234 14.3 游戏流程与功能 234 14.3.1 游戏背景设定 235 14.3.2 关卡设计及墙壁的作用 235 14.3.3 出口 235 14.3.4 玩家角色 235 14.3.5 物品 236 14.3.6 敌人 236 14.4 关卡文件格式以及资源结构 237 14.4.1 关卡的XML文件 237 14.4.2 资源SWF文件 240 14.4.3 游戏所用类的概述 240 14.5 引擎类 241 14.5.1 ISprite接口 241 14.5.2 IPlayer接口 242 14.5.3 IEnemy接口 243 14.5.4 IItem接口 243 14.5.5 IPortal接口 244 14.6 IWall接口 244 14.6.1 PlatformerEvent类 245 14.6.2 PortalDestinations类与PortalRequirement类 245 14.6.3 PlatformerConfig类 246 14.6.4 GridReference类 247 14.7 CollisionGrid类 249 14.8 游戏实现类 267 14.9 资源类 269 14.9.1 Player类 269 14.9.2 Enemy类 271 14.9.3 Item类 272 14.9.4 Portal类与Wall类 273 14.9.5 游戏中的资源 275 14.10 本章小结 277 第15章 Marble Runner:我们的 第一款手机游戏 278 15.1 部分1:开发iOS游戏的最佳 实践 278 15.1.1 滤镜(包括由PixelBender所创建的滤镜) 279 15.1.2 矢量图形(及形状补间) 279 15.1.3 文本处理 280 15.1.4 补间动画 280 15.1.5 绘图API、遮罩以及混合 模式 281 15.1.6 运行时加载的SWF文件 281 15.2 利用GPU 281 15.3 代码也很关键 282 15.3.1 声明类型 283 15.3.2 使用静态属性与函数 283 15.3.3 确定最终答案 283 15.3.4 放之四海而皆准的垃圾 回收 284 15.3.5 避免使用极其庞大的架构 和库 284 15.3.6 减少显示列表层级 285 15.3.7 无需用事件来处理函数所 擅长之处 285 15.4 权衡:继承还是接口 286 15.5 程序实例 286 15.5.1 XFL文档 287 15.5.2 Space.as 287 15.5.3 Rock.as 288 15.5.4 文档类SpaceRocks.as 290 15.5.5 FrameRateProfiler类 292 15.6 部分2:Marble Runner 293 15.7 Accelerometer类 293 15.8 加速计数据是如何计算出来的 294 15.9 Marble Runner游戏 295 15.9.1 XFL文件 296 15.9.2 游戏所用到的类 296 15.9.3 LabyrinthEngine 297 15.9.4 LabyrinthLevel 303 15.9.5 IBall、IHazard、IWall 306 15.9.6 基本文档类 307 15.9.7 标题界面类 309 15.9.8 得分排行榜界面类 310 15.9.9 GameClip类 314 15.9.10 Marble类 317 15.9.11 HazardPit和 StandardWall类 320 15.9.12 Results类 321 15.10 游戏设计注意事项 323 15.10.1 关卡设计 323 15.10.2 风险与回报 323 15.11 有待改进之处 324 15.11.1 计分 324 15.11.2 可拾取物品 324 15.11.3 可卷动的关卡 324 第16章 桌上冰球:采用多点触摸的 平板电脑多人游戏 325 16.1 主题三重奏 325 16.2 移动设备的多点触摸输入方式 326 16.3 有限状态机 326 16.4 利用Box2D来进行物理仿真 327 16.5 双人桌上冰球游戏 328 16.5.1 XFL文件 328 16.5.2 游戏所用类 329 16.5.3 Main.as 329 16.5.4 Title.as 331 16.5.5 Rules.as 331 16.5.6 GameTouchController.as 333 16.5.7 Game.as 336 16.5.8 AirHockeyEngine.as 345 16.5.9 准备创建 353 16.6 本章小结 353 第17章 找到就干掉:猎虫行动 354 17.1 bug 354 17.1.1 trace 354 17.1.2 Flash Tracer 356 17.1.3 调试器 357 17.2 性能与优化 358 17.2.1 FrameRateProfiler类 359 17.2.2 MemoryProfiler类 362 17.2.3 sampler包 366 17.3 本章小结 369 第18章 当心恶贼 370 18.1 恶意使用 370 18.1.1 关闭不再需要的事件侦 听器 370 18.1.2 为所要接受的输入设置最低延时 371 18.1.3 一经发现恶意使用就将游戏关闭 371 18.2 数据保护 371 18.2.1 内存攻击 371 18.2.2 保护要发送与接收的数据 375 18.3 SWF文件保护 376 18.4 本章小结 377 第19章 移动开发介绍 378 19.1 移动设备:新的热点 378 19.2 新增API 379 19.3 开发流程:先A后I 379 19.3.1 编译 379 19.3.2 程序设置与设计 381 19.4 第一个iPhone程序 382 19.4.1 开发者证书 382 19.4.2 UDID 385 19.4.3 AppID 386 19.4.4 供给配置文件 387 19.4.5 DemoApp 388 19.4.6 XFL文件 388 19.4.7 文档类 389 19.5 仅是开端 394 19.6 改变设置 395 19.6.1 文档分辨率 395 19.6.2 发布设置 396 19.6.3 部署 398 19.7 本章小结 398 后记 Flash在游戏业中的前景 399 附录A 摄像头与麦克风 400 附录B 本地化 408 附录C JSFL——情人们的 JavaScript 415 附录D 使用AMFPHP开发游戏 422 · · · · · · () "实战Flash游戏开发"试读 · · · · · ·自从写作本书以来,感觉好像已去经年。它在第一年就卖了4500本,远远超出了我最理想的预期目标。非常感谢那些买书的人以及花时间向他人推荐本书的人。不过,科技的发展永不停步,优秀作者也不能驻足于过去的成就。本书是第1版的修订版,上一版的内容多半都囊括在内(尽管以后你只能在网上看到某些内容),另外还添加了一些我认为是崭新且激动人心的高级内容,比如移动开发。游戏开.. |
同学推荐很多次
开阔了自己的思维
很有趣
可能我道行比较浅,一时半会还真的无法消化