新闻资讯
看你所看,想你所想

ActionScript 3.0游戏设计基础

ActionScript 3.0游戏设计基础

ActionScript 3.0游戏设计基础

本书涵盖了Flash 游戏设计中的所有基础主题,包括游戏图形的製作、AS3.0语法基础、事件机制、碰撞检测、物理模拟、滚屏系统、AI(人工智慧)基础,以及嵌入游戏音效。

基本介绍

  • 书名:ActionScript 3.0游戏设计基础
  • 作者:【加】斯白(Spuy,R.V.D.)
  • 译者:大漠穷秋
  • ISBN:978-7-121-20241-4
  • 页数:652
  • 定价:99.00元
  • 出版社:电子工业出版社
  • 出版时间:2013年5月
  • 装帧:平装
  • 开本:16开

编辑推荐

1.选择AS3.0的理由:它是目前最好的跨平台游戏开发工具,同时适用于Web、桌面与移动设备;配备完整、可协同的工具链;对初学者最为友好。
ActionScript 3.0游戏设计基础
2.作者推崇与践行的观点:本书书名中所谓“基础”,是指通过对其的学习与实践,足可驾驭任何曾经听起来高不可攀的游戏製作技术主题。

内容提要

对于每一章的内容,在本书的随书原始码中都提供了完整的代码和可运行的示例。读者可以跟随作者的思路,从最简单的游戏开始循序渐进地向前推进,最终构建出比较大型的Flash 游戏。
由于本书的原作者本身就是一位高校的老师,因此,本书的内容由浅入深,知识丰富,非常适合读者自学或者作为高等学校的教材使用。

书本目录

第 1 章编程基础:如何製作视频游戏
1.1 基本要求............................................................................................................2
1.1.1 一台计算机................................................................................................................2
1.1.2 图形设计软体............................................................................................................2
1.1.3 计算机编程软体........................................................................................................3
1.1.4 Adobe Flash Professional.....................................................................................5
1.2 你需要知道的东西..............................................................................................6
1.3 你不需要知道的东西..........................................................................................6
1.4 一切都与编程有关..............................................................................................7
1.5 编程?可是我的数学很烂!.............................................................................8
1.6 我已经知道怎幺编程了!..............................................................................8
1.6.1 我能製作何种类型的游戏?....................................................................................9
1.6.2 学习新术语................................................................................................................9
1.6.3 打好基础....................................................................................................................9
1.7 使用FlashBuilder..............................................................................................10
1.7.1 设定Flash Builder 的工作环境...............................................................................11
1.8 编写你的第一个程式.................................................................................19
1.9 ActionScript 档案和.as 扩展名......................................................................19
1.10 开始编程!...............................................................................................21
1.10.1 关于sprite 的一点小魔法....................................................................................23
1.10.2 不要忽略类!........................................................................................................25
1.10.3 使用构造方法........................................................................................................27
1.10.4 对齐代码................................................................................................................29
1.11 您的指令是什幺?............................................................................................31
1.12 为代码添加注释...........................................................................................33
1.13 运行你的程式并编译SWF 档案..............................................................35
1.13.1 在你编译程式的时候发生了什幺?....................................................................37
1.14 不能运行?..................................................................................................39
1.14.1 一些常见的错误信息............................................................................................42
1.14.2 使用原始的源档案校对你的程式........................................................................44
1.15 关于Flash Builder 的更多内容.......................................................................44
1.15.1 编辑视窗的怪癖和特性........................................................................................44
1.15.2 透视图....................................................................................................................48
1.16 关于AS3.0 和Flash Player 的更多内容....................................................50
1.17 命名约定............................................................................................52
1.18 本章小结..............................................................................................53
第2 章製作游戏图形
2.1 创建游戏世界背景.................................................................................57
2.1.1 在Photoshop 中新建档案.......................................................................................57
2.1.2 绘製天空..................................................................................................................60
2.1.3 绘製山峦..................................................................................................................71
2.1.4 使用钢笔工具绘图..................................................................................................73
2.1.5 複製、修改以及排列图层......................................................................................83
2.1.6 斜面和浮雕..............................................................................................................87
2.1.7 使用矩形选择工具製作箱子..................................................................................91
2.2 製作游戏角色................................................................................................96
2.2.1 创建档案..................................................................................................................97
2.2.2 绘製角色..................................................................................................................97
2.3 製作按钮............................................................................................100
2.3.1 新建一个档案........................................................................................................100
2.3.2 绘製按钮................................................................................................................100
2.3.3 使用文字工具........................................................................................................103
2.3.4 製作其他按钮........................................................................................................104
2.3.5 保存作品并製作PNG 档案..................................................................................107
2.4 检查你的作品.........................................................................................108
2.5 关于Photoshop 的更多内容......................................................................109
2.6 本章小结.............................................................................................................110
第 3 章为对象编程
3.1 可我有点害怕编程!........................................................................................112
3.2 载入并显示图片.................................................................................................113
3.2.1 新建AS3.0 项目....................................................................................................114
3.2.2 理解配置档案........................................................................................................116
3.2.3 用元数据标籤设定Flash Player........................................................................... 117
3.2.4 载入并显示background.png.................................................................................119
3.2.5 这段代码的工作原理是什幺?............................................................................122
3.2.6 变数........................................................................................................................123
3.2.7 变数类型................................................................................................................124
3.2.8 创建空盒子............................................................................................................125
3.2.9 创建实例和对象....................................................................................................126
3.2.10 在舞台中显示图像..............................................................................................129
3.2.11 理解代码结构......................................................................................................135
3.2.12 在舞台上定位Sprite............................................................................................136
3.3 为按钮编程...............................................................................................144
3.3.1 理解点标记............................................................................................................145
3.3.2 方法........................................................................................................................145
3.3.3 使用方法调用........................................................................................................146
3.3.4 使用函式定义........................................................................................................147
3.3.5 使用基本方法........................................................................................................149
3.3.6 理解事件和事件监听器........................................................................................153
3.3.7 让按钮运行起来....................................................................................................161
3.4 利用属性控制Sprite 对象.......................................................................162
3.4.1 上下移动.........................................................................................................164
3.5 渐进移动...............................................................................................166
3.5.1 跟蹤输出................................................................................................................167
3.5.2 使用递增和递减运算符........................................................................................168
3.5.3 限制移动................................................................................................................169
3.5.4 变大和变小............................................................................................................172
3.5.5 消失!....................................................................................................................175
3.5.6 旋转........................................................................................................................179
3.5.7 更多的属性?........................................................................................................181
3.6 Sprite 居中...............................................................................................181
3.7 代码小结.................................................................................................186
3.8 本章小结.........................................................................................191
第 4 章决策
4.1 使用文本..........................................................................................193
4.1.1 新建项目................................................................................................................193
4.1.2 需要导入的类........................................................................................................195
4.1.3 创建TextFormat 和 TextField 对象...................................................................196
4.1.4 设定文本格式........................................................................................................197
4.1.5 配置并显示输出文本............................................................................................199
4.1.6 配置并显示输入文本框........................................................................................202
4.2 编写简单的猜数字游戏...............................................................................205
4.2.1 理解游戏的结构....................................................................................................206
4.3 学习关于变数的更多内容........................................................................208
4.3.1 监听按键................................................................................................................211
4.4 决策..........................................................................................................214
4.4.1 显示游戏状态........................................................................................................220
4.5 使用后缀操作符改变同一个变数的值..........................................................222
4.5.1 字元串连线............................................................................................................224
4.5.2 嗨,为什幺必须要用gameStatus 变数呢? ........................................................227
4.5.3 uint 型变数与int 型变数.......................................................................................227
4.5.4 游戏的输赢............................................................................................................228
4.5.5 利用方法将程式模组化........................................................................................234
4.6 润色............................................................................................................235
4.6.1 处理随机数............................................................................................................236
4.6.2 禁用回车键............................................................................................................240
4.7 製作漂亮的按钮................................................................................242
4.7.1 理解一些概念........................................................................................................244
4.7.2 载入图片并显示按钮............................................................................................245
4.7.3 理解滑鼠事件........................................................................................................247
4.8 将按钮添加到猜数字游戏中.................................................................253
4.8.1 在游戏结束时禁用按钮........................................................................................255
4.8.2 管理複杂的代码....................................................................................................262
4.9 项目扩展...........................................................................................................262
4.9.1 製作Play again 按钮.............................................................................................263
4.9.2 跟蹤玩家的猜测....................................................................................................264
4.9.3 添加视觉效果........................................................................................................264
4.9.4 逆向思维................................................................................................................264
4.10 嵌入字型快速指南.......................................................................................265
4.11 本章小结........................................................................................................267
第 5 章控制游戏角色
5.1 使用键盘控制玩家的游戏角色....................................................................268
5.1.1 键盘操控——错误的方式!................................................................................269
5.1.2 键盘操控——正确的方式!................................................................................273
5.1.3 按照指定的速度移动............................................................................................276
5.1.4 使用新的keyDownHandler...................................................................................277
5.1.5 使用keyUpHandler................................................................................................278
5.1.6 使用enterFrameHandler........................................................................................279
5.1.7 设定舞台边界........................................................................................................281
5.1.8 到达舞台边缘时禁止移动....................................................................................282
5.1.9 萤幕环绕................................................................................................................286
5.2 嵌入图片.....................................................................................................288
5.3 滚动......................................................................................................290
5.3.1 源码分析................................................................................................................295
5.3.2 更好地滚动............................................................................................................298
5.3.3 再好一点的滚动....................................................................................................305
5.4 更进一步...............................................................................................308
5.4.1 视差滚动................................................................................................................309
5.5 本章小结..............................................................................................315
第 6 章碰撞检测
使用hitTestObject 进行基本的碰撞检测.........................................................................316
使用hitTestObject.............................................................................................................321
6.1 触髮状态变化.............................................................................................323
6.1.1 降低血量条............................................................................................................327
6.1.2 利用scaleX 按照百分比缩放血量条...................................................................330
6.1.3 刷新得分................................................................................................................331
6.1.4 检测游戏是否结束................................................................................................336
6.1.5 拿起和放下对象....................................................................................................338
6.2 关于hitTestObject 的坏讯息...................................................................343
6.2.1 使用边界框检测碰撞............................................................................................344
6.2.2 学会和hitTestObject 共处.....................................................................................345
6.2.3 创建子对象............................................................................................................346
6.2.4 高级碰撞检测策略................................................................................................350
6.3 使用基于矢量的碰撞检测................................................................................351
6.3.1 防止对象重叠........................................................................................................351
6.3.2 编写Collision 类...................................................................................................357
6.3.3 换个角度再看方法、实参和形参........................................................................362
6.3.4 Collision.block 方法解析.......................................................................................364
6.4 本章小结....................................................................................................371
第 7 章製作游戏
7.1 製作游戏图形..........................................................................................373
7.1.1 製作带纹理的箱子................................................................................................374
7.1.2 製作地雷................................................................................................................388
7.1.3 製作游戏角色........................................................................................................396
7.1.4 设计游戏背景........................................................................................................406
7.1.5 製作Game Over 图形............................................................................................407
7.2 游戏编程.....................................................................................................409
7.2.1 处理大量对象........................................................................................................410
7.2.2 到底什幺是类?....................................................................................................411
7.2.3 TimeBombPanic 套用类解析................................................................................416
7.2.4 向游戏中添加对象................................................................................................423
7.2.5 舞台边界................................................................................................................425
7.2.6 角色和箱子之间的碰撞........................................................................................426
7.2.7 排雷........................................................................................................................426
7.2.8 使用定时器............................................................................................................427
7.2.9 结束游戏................................................................................................................431
7.3 创建可滚动的游戏环境..............................................................................434
7.3.1 让你的作品準备滚动............................................................................................435
7.3.2 向游戏中添加对象................................................................................................436
7.3.3 滚动游戏的边界....................................................................................................438
7.4 本章小结...........................................................................................................442
第 8 章製作更大型的游戏
8.1 理解游戏的结构...........................................................................................444
8.1.1 使用私有变数和方法............................................................................................447
8.2 游戏编程.............................................................................................................449
8.2.1 让LevelOne 访问stage.........................................................................................449
8.2.2 确保LevelOne 位于舞台上..................................................................................451
8.2.3 LevelOne 类...........................................................................................................453
8.2.4 对游戏角色编程....................................................................................................461
8.2.5 对怪物编程............................................................................................................468
8.2.6 对星形武器编程....................................................................................................475
8.2.7 检测关卡是否结束................................................................................................484
8.2.8 结束关卡................................................................................................................485
8.2.9 使用removeChild 彻底删除对象.........................................................................492
8.2.10 通过派发事件在类之间进行通信......................................................................494
8.2.11 事件冒泡..............................................................................................................496
8.2.12 结束第一关..........................................................................................................498
8.3 在第二关中向四个方向发射星星...................................................................498
8.4 更多的怪物.....................................................................................................502
8.4.1 在一个滚动式的游戏世界中移动对象................................................................502
8.4.2 智慧型怪物................................................................................................................519
8.4.3 障碍物和寻路........................................................................................................523
8.5 关于游戏结构的更多内容........................................................................523
8.6 本章小结..................................................................................................525
第 9 章物理引擎、循环、数组和音效
9.1 使用物理模拟自然运动...............................................................................527
9.1.1 用来玩物理的游戏对象类....................................................................................528
9.1.2 加速度....................................................................................................................529
9.1.3 摩擦........................................................................................................................537
9.1.4 弹跳........................................................................................................................539
9.1.5 重力........................................................................................................................540
9.1.6 跳跃........................................................................................................................543
9.2 为游戏添加音效.............................................................................................549
9.2.1 在游戏中集成音效................................................................................................551
9.2.2 循环播放音乐以及设定音量和声道....................................................................552
9.3 同时操纵大量对象......................................................................................557
9.3.1 使用数组................................................................................................................563
9.3.2 创建很多箱子........................................................................................................572
9.3.3 在多个对象之间进行碰撞检测............................................................................578
9.3.4 案例学习................................................................................................................586
9.4 本章小结.........................................................................................................587
第 10 章对象和角色的高级控制
10.1 使用滑鼠移动对象......................................................................................590
10.1.1 让对象跟随滑鼠移动..........................................................................................590
10.1.2 使用缓动的方式移动对象..................................................................................591
10.2 案例研究:全形度发射子弹.........................................................................597
10.2.1 创建游戏对象......................................................................................................602
10.2.2 让魔杖围绕仙女旋转..........................................................................................603
10.2.3 360°发射星星....................................................................................................605
10.3 高级玩家操控系统.................................................................................608
10.4 敌军AI 系统..........................................................................................................608
10.4.1 避开玩家..............................................................................................................612
10.4.2 旋转并向滑鼠发射子弹......................................................................................613
10.4.3 使用定时器发射子弹..........................................................................................617
10.5 案例研究:杀人蜂魔窟!..............................................................................................618
10.5.1 Flash 动画以及游戏发布.....................................................................................626
10.6 本章小结.........................................................................................627

精彩节摘

译者序
从 2009 年开始,我正式开始深入学习Flash 和ActionScript 3.0 相关的技术。
当时因为一些业务需求,公司需要一些 Flash 小控制项在Web 页面上展示曲线图。由于直接用一些商业组件可能会涉及着作权方面的问题,而且为了几个小控制项去购买大型的商业组件,从经济上来说也不合算,因此,只好自己动手。
后来,随着对 Flash 和ActionScript 3.0 的学习越来越深入,我发现原来这里有一片广阔的天地,不只是做点小控制项那幺简单。从目前来看,纵观各种前端技术,Flash 技术体系至少在以下大方向上处于无可撼动的领先地位。
1. 视频播放
这一点无须赘述,从YouTube 到YouKu,再到虾米音乐,随便打开一个以视频或者音频内容为主的站点,播放器都是Flash。
在视频播放方向上,Flash 的优势体现在如下方面:一是方便嵌入广告;二是视频分段非常方便;三是可以藉助Flash 播放器提供的GPU 加速功能调用客户端的显示卡加速,从而呈现高品质的视频画面。
2. 页游
相信很多人一定还记得当年的“开心农场”,那款让你食不知味的“偷菜”游戏,实际上就是一个简单的Flash 而已。当然,除了“偷菜”、“扫雷”、“连连看”这种比较简单的游戏之外,你还可以利用Flash 技术来构建“塔防”、“植物大战殭尸”这种比较複杂的多关卡游戏。
在页游方向上,Flash 的优势至少有以下几方面:一是完备的设计和开发工具,由于Adobe 提供了PhotoShop 和Flash CS 系列的图像和图形设计工具,还有Flash Builder 这款基于Eclipse 的开发工具。因此,在设计和製作游戏的过程中,美工、设计人员和开发者可以很好地互动协作;二是前后端通信,Flash 提供了多种网路通信方式,在构建複杂游戏的过程中可以採用socket 的方式进行通信,完备的工具链是其他技术一时半会儿无法提供的。
3. 线上文档阅读器
读者可以打开百度文库或者豆丁文库自行体验,Flash 能将Doc、PPT、PDF 一网打尽。这里的优势主要体现在“统一”二字上,无论是何种格式的文档,只要转换成swf 格式,那幺页面上就可以用同一款阅读器进行展示。
当然,这要依赖于后台的转换工具,大家可搜寻“swftools”自行研究。
4.各种控制项
有时候你可能需要一款能够上传并预览图片的控制项,也可能需要一个能实时“推送”讯息的页面组件和一个能在页面上配置流程的组件,还可能需要一个能在页面上进行滑鼠绘图的组件,等等。
这些控制项用 Flash 和ActionScript 3.0 来实现都是小菜一碟。
通过本书的学习,然后悉心研究一番周边的技术,那幺,聪明的你一定可以轻鬆驾驭以上任意一个大的主题。
正如原作者在书中一直强调的那样,你所学到的 Flash 技术绝对不会成为无用之物,那些设计模式、编程技巧可以无缝地迁移到其他任意的平台上。有时候你甚至会发现,在
不同的技术体系中,某些函式的名称都是一样的。另外,如果读者有Java 或者C++相关的编程经验,那幺学习AS3.0 是相当轻鬆的,因为AS3.0 的基本语法和结构与这些高级语言几乎完全相同(当然,随着你学习得越来越深入,你会发现很多AS3.0 特有的地方)。
我的一个大学老师曾经说过,玩计算机玩到最后都是数学,玩算法玩到极致都是哲学传说中的“举一反三”、“触类旁通”想必就是这个意思。读者可以从本书入门,然后去研究这一领域的各种高级主题,例如,游戏设计中最经典的“A*寻路”、“格线碰撞检测”、“物理模拟”等。有了这本书作为基础,学习这些高级的主题会轻鬆得多。当你开始涉及上面这些主题的时候,你就会逐渐体验到游戏设计中的数学之美。
2009 年,我刚开始涉及Flash 这个领域的时候,曾经看到有朋友推荐friendsofED的Foundation 系列。这位仁兄发了一张截图,上面是4 本friends of ED 出的Flash 和AS3 相关的书籍,其中就有《ActionScript 3.0 游戏设计基础》这本书,在那篇推荐文章的末尾,这位仁兄来了一句“可惜这些书目前都还没有中文版”。而就在3 年之后,我居然有幸能够翻译本书的第2 版,我不知道这是不是所谓的“机缘”。
翻译是一件苦差事,校对比翻译更苦。
感谢电子工业出版社各位编辑的辛勤劳动!
感谢王平和刘洋帮忙校对书稿。王平曾经是我的同事,就职于富士通,他精通Java,在JQuery、Extjs、Flex 等前端技术上都有很深的研究。刘洋供职于一家涉及国土资源领域的公司,精通各种WebGIS(网路地理信息系统)方面的技术。刘洋作为一名团队管理者,还能在百忙之中抽出时间帮我校对,真心非常感谢!
最想感谢的是我国中的 3 位英语老师,尤其是孙晓静老师。感谢你们没有让我在学英语的时候感觉到痛苦。有一次,孙老师说我以后可以去做翻译,当时我一笑置之,以为不过是玩笑而已。多年以后的今天,我竟然真的能够亲手翻译完一本书,想想真是一件非常神奇的事情,或许人生真是个弯弯绕,或许这世上真有神的存在。

作者简介

Rex van der Spuy 是一名自由职业者、互动媒体设计师,擅长Flash/AS3.0 游戏设计、界面设计,以及ActionScript编程。他主要在加拿大、印度、南非这些地方游走。在不用编写视频游戏代码的时候,他会一边弹着锡塔尔琴,一边週游世界。

媒体评论

无论新技术推出多幺频繁,Flash与ActionScript在游戏领域及其他很多特定行业的垄断地位,在数年内很难被撼动。事实上,我们并没有多少选择的余地,其他竞争者,要幺早早就被Flash淘汰,要幺因为先天缺陷或环境不成熟,而难以完成抢班夺权的重任。
而要学好Flash开发技术,老虎书的各个版本一直是最佳起点。它既能让你产生对AS3.0的浓厚兴趣,更会让得心应手的感受伴随学习始终,更有大量案例让你提前置身于真实开发实践中!掩卷之后,再面对各种高级主题时,阅读中建立的智力优越感会神奇地延续,甚至已能开始体会登堂入室的奇美。

前言

既然你想製作视频游戏,那幺你该从哪里下手呢?你需要学习哪些知识呢?你可以向谁求助呢?
对于这些问题,如果你曾经问过周围其中的任意一个人,你就会知道想要找到答案是多幺困难。很多年前,我也曾经问过自己同样的问题,那时候我还住在印度班加罗尔市(Bangalore)郊外的一个小村庄里。当时我正在一家国际学校教程式设计和互动媒体课程。我的所有学生都玩游戏,他们也都想自己製作游戏,但是那时候关于如何製作游戏还没有比较全面的书籍,网路上也没有相关资源。
经过一番研究之后,我发现了一件相当令人惊讶的事情:对于基础的游戏设计来说,其实只需要很少的编程相关的知识,并且在製作类型完全不同的游戏时,可以反覆使用同样的技术。游戏设计非常有趣,效果立竿见影,并且是一件非常有创意的事情。这番研究的结果就是,我编写了一本供内部使用的游戏设计教材,它也成了3 门高中级别课程的基础,同时也启发了这本书的写作。
在现在看来,那时候几乎是史前时代,那时候的 Flash 版本还是4 和5,ActionScript程式语言也还停留在1.0 版本上,并且Flash 中内置了一些很赞的互动式教程,那些教程会一步一步地引导新用户去学习。那时候貌似大家都是初学者,所以很容易找到相关的书籍和教程,并且这些资料都假定读者不具备任何背景知识。
ActionScript 已经是3.0 版本了(简写为AS3.0),并且已经不像当初那幺简单。ActionScript语言已经变得非常强大,同时也很複杂。关于AS3.0 的很多资源,只要是你能找到的,都会重点关注那些複杂的东西。对于初学者来说,尤其是对于那些编程经验很少的初学者来说,想要找到一个综合的立足点去开始学习变得越来越困难。对于这一切颇具讽刺意味的是,在製作游戏方面,AS3.0 实际上比AS1.0 更加容易。本书将会抛开AS3.0表面上那些複杂的东西而直达核心,在製作游戏的过程中,这些核心的东西都是你必须知道的内容。製作游戏是一件非常有趣并且非常容易的事情,每个人都可以做到。
设计游戏是一件相当奇妙的事情,你即将要学习的东西就像在现实世界中变魔术一样。抓紧缰绳,準备开始狂奔吧——你会惊讶地发现你的生产效率会变得越来越高。

关于第2 版

本书的第1 版,也就是Foundation GameDesign with Flash,其中的内容几乎全部与如何使用FlashProfessional 软体来製作游戏有关。曾几何时,使用FlashProfessional 是製作Flash 游戏的唯一方法,甚至在其他技术逐渐兴起的时候,它依然是最好的方法。在本书第1 版出版之后大约3 年的时间里,AS3.0 焕发出了自己的生命力——它变成了最好的跨平台开发工具,可以用来为Web、桌面平台、移动设备开发游戏。对初学者来说,学习它也是最容易的一件事情,同时它还具备了最全面、协同性最好的工具集可供利用。对製作游戏来说,这些工具的数量比任何其他单独的技术都要多得多。本书将会为你展示如何使用纯AS3.0 代码去构建游戏,为了保持强大的灵活性,在开发过程中还会使用大量的辅助技术。

相关推荐

声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:yongganaa@126.com