


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于 AS3.0 的 Flash 游戏设计与开发彭婀娜(广州市公用事业技师学院,广东 广州510100)摘 要 Flash 因其灵活、方便、文件体积小等优势成为网页游戏开发的宠儿,其中脚本语言 Active Script 3.0 是一种完全 面向对象的语言,与旧版本相比,其扩展性、可读性更强,编译速度更快,性能更高。笔者尝试使用 AS 3.0 编写“水手捕鱼”网页 游戏,并从功能分析、游戏流程、关键技术等方面阐述设计思路。关键字 flash游戏;AS3.0 技术;面向对象;游戏开发1引言Flash 游戏是一种随网络兴起的游戏形式,因其游戏简 单、操作方便、无需安装、文件体积小等优点而深受广大网友 欢迎。在网络图像、动画的传输上,Flash 有着得天独厚的优 势,Flash player 及其插件的高普及率使得 flash 成为网页游戏 开发者的宠儿。Flash 技术包含一套可编程脚本解析器,称 为 ActionScript,可以控制 Flash 动画,实现多种交互功能,成 为了绝大多数小游戏开发的技术基础。2AS3.0 的优势ActionScript3.0(简称 AS3.0)是 Flash 新一代脚本语言,是 一个完全基本 OOP 的标准化面向对象语言。与以前的版本 语言(AS2.0)相比,AS3 代码更加模块化,可读性更好,扩展性 更强,并且新增了很多功能,性能也大大地提高。主要体现 在以下几个方面:(1) 采用新一代虚拟机 :在 编译阶段 ,AS2 采用的是 AVM1(ActionScript Virtual Machine),而 AS3 采 用 的 是 AVM2。新一代虚拟机采用了 OOP 思想,在执行速度上比起 AVM1 也快了 10 倍。相对于 AS2 运行出错需要花费大量时 间排错的缺陷,AVM2 还提供了异常处理机制,与目前主流 的编译器一样,运行出错会输出错误提示,工作效率大大提 高。(2) 代码规范化与标准化:AS3 的事件机制采用的是监 听的方式,和 AS2 的 OnClipEvent 不同,AS3 里所有的事件都 是需要触发器、监听器、执行器三种结构的,这样做的好处就 是使得这个语言得到很大程度的规范化与标准化。不像 AS2,由于编写不规范,使得代码变得繁复难懂,可读性差, 执行效率也大大降低。要特别说明的是,AS3 的所有事件都 直接继承 event 对象,而 event 是直接继承自 BOSS 类 object, 结构更加紧凑。所以在 AS3 中,所有的事件都继承自相同的 父类,结构相同,提高了重用性。(3) 程序安全性提高:与以前的版本不同,AS3 引入了封 装的概念,使得程序安全性大大提高,各个对象之间的关系 也通过封装,访问控制而得以确定,避免了不可靠的访问给作者简介:彭婀娜,女,湖南攸县人,讲师,研究方向:计算机科学与技术。程序带来的意外产生。(4) 读取 XML 的优化:AS2 时代对 XML 的存取仍然需要 解析,而 AS3 则创新地将 XML 也视作一个对象,存取 XML 就像存取普通对象的属性一样方便,可以采用访问标准对象 中的属性的方式来访问节点。使用点表示法和 XMLList 方 法,便可以轻松获取信息,无疑大大提高了效率。3使用 AS3.0 开发 flash 游戏的具体实践本文以“水手捕鱼”游戏开发为例,探索使用 AS3 开发Flash 游戏的实践过程。 31 游戏的功能分析“水手捕鱼”游戏以几位水手商量出海捕鱼赚取金币的 对话开始,在航海地图中选择捕鱼海域,之后选择角色,进入 捕鱼游戏主界面。游戏以五彩斑斓的海底世界为背景,其中 有各种海底生物自由游动,玩家通过发射鱼炮进行捕鱼,在 限定的时间内使用限定的子弹数量,达到既定的分数即为挑 战成功。游戏要实现的主要功能如下:(1) 游戏分为快速、简单、普通、达人四人模式,每种模式 的时间限制、分数限制、子弹限制各不同;(2) 游戏的运行速度流畅,画面清晰,给玩家带来淋漓尽 致的操作快感;(3) 移动鼠标可以操作大炮的左右移动,点击左键能够 发射网炮,按下空格键可以切换鱼炮的级别,级别越高威力 越大,所耗子弹数越多;(4) 呈现多种海洋生物自由游动,每种生物的生命力不 同,分值也不同;(5) 发射的鱼炮击中鱼后,撒出鱼网,鱼网覆盖范围内的 鱼儿生命力会减小,直到被降为零后被捕获;(6) 除了自由游动的鱼之外,还有鱼群鱼阵随机蜂拥而出。32 游戏的设计分析321 “水手捕鱼”游戏软件的执行流程如图 1 所示:学术探讨 应用技术与研究2014 年第 3 期图 1 “水手捕鱼”游戏软件的执行流程图322 游戏的关键技术实现 在“水手捕鱼”游戏中,海洋生物的游动轨迹与出现概率、鱼炮的飞行轨迹、子弹杀伤力的级别属性设置等是游戏实现 的关键技术。因此我们应用了 AS3.0 中几种特殊的类:Vector2D 类。二维向量类,提供了向量的加法、减法、与 标量的乘法、与标量的除法、取反、克隆、置 0、求长度、求角 度、设置长度、求两个向量距离、求两个向量点积、求两个向 量叉乘、判断两个向量是否相等等方法。Vehicle 类。机车类,具有质量、最大速率、位移、速度等 属性,其中位移和速度是向量,用 Vector2D 的实例来表示。 该类中有一个重要方法 update(),调用该方法可以使机车根 据当前位移和速度求出新的位移,并更新与显示有关的 x、y、 rotation属性。SteeredVehicle 类。 转向机车类 ,是 Vehicle 类的子类。 Vehicle 类的对象只能以一定的速度一直移动,SteeredVehicle 类的对象可以改变速度的大小和方向,具有搜寻、逃避、到 达、追捕、躲避、漫游、规避、路径追随、群落等行为,而且运动 轨迹自然流畅。在本游戏软件中,我们编写的元件类有以下几个:Fish 类。代表鱼的类,是各种具体鱼类的父类,各种由 FLASH 生成的具体鱼类都继承 Fish 类。Fish 类继承 Steered- Vehicle 类,因此具有代表各种转向行为的方法,还具有鱼类 型、游动形式、生命值、遵循路径编号等属性。Bullet 类。代表子弹的类,继承 Vehicle 类,因此会以恒 定速度移动,还具有代表杀伤力的属性。与 FLASH 中的子 弹元件绑定。Net 类。 代表鱼网的类 ,具 有代表杀伤力的属性 ,与FLASH 中的鱼网元件绑定。Gun 类。代表炮的类,与 FLASH 中的炮元件绑定。其中- 58 -的 pointTo 方法可使炮指向舞台上的指定点。Coin 类。是金币类 GoldenCoin 和银币类 SilverCoin 的 父类,本身继承 Vehicle 类,因此会以恒定速度移动,从而使金 银币飞向炮台。具有代表价值的属性。AutoVanishText 类。一个能在指定时间后自动消失的文 本框类,主要用于显示鱼被打死后由于杀死该鱼所得分数。例如:Fish 类的结构如下:public class Fish extends SteeredVehicle public static const MOVE_WANDER:int = 1;/鱼的 游动形式之一,自由流动,是最常见的游动形式public static const MOVE_PATH:int = 2;/鱼的游 动形式之一,沿固定路径游动public static const MOVE_FORWARD:int = 3;/鱼 的游动形式之一,鱼一直向前游动,速度不变private var _type:int = 0;/鱼的类型 private var _moveMode:int = MOVE_WANDER; /鱼的游动形式private var _blood:int = 1 ;/鱼的生命值private var _pathId:int = 0;/在 MOVE_PATH模式下所遵从的路径序号public function move():void switch (moveMode) case MOVE_WANDER:wander(); break;case MOVE_PATH:followPath(DatapathspathId,false);break;case MOVE_FORWARD: / 什么代码都不用 写,执行完 update()后自然会向前break;另外,我们还编写了用于集中管理数据的类Data 类。该类有常量、变量和方法,全部都是静态的。常量有表 示舞台高度和宽度的常量、代表各种模式编号的常量。变量 主要用于容纳从 dataxml 文件中读入的数据,这些数据包 括各种鱼的参数数据、各种模式的参数数据、路径的坐标数 据、鱼阵的坐标数据。方法只有一个 getRandomFishId,用于 取得一个代表鱼种类的整数,这个整数的出现规律是按照 fishChances 数组中的概率来分布的:public class Datapublic static const STAGE_WIDTH:int = 800; public static const fishChances:Array = new Array应用技术与研究学术探讨2014 年第 3 期();/定义各种参数/* 取得一个代表鱼种类的整数,这个整数的出现规O(mn2)量级,降低运行效率。为了控制时间复杂度,在发现 一次碰撞,释放一个渔网之后,马上退出上述的两重循环,使 时间复杂度控制在 O(mn)+O(n)即仍是 O(mn)量级。这样处律是按照 fishChances 数组中的概率来分布的 */public static function getRandomFishId():int var r:Number = Mathrandom();var i:int = 0;var s:Number = fishChances0; while (r s) i+;s += Number(fishChancesi);return i;4使用 AS3.0 编程技术的亮点(1) 在游戏中,我们引入 XML 文件管理数据,实现程序 与数据之间的松耦合。鱼特征参数、模式特征参数、水手描 述数据、鱼游动路径坐标数据、鱼阵坐标数据等都放在 data. xml 文件中,使这些数据的增加、修改、删除都十分方便,不需 修改源代码也不需重新编译。(2) 碰撞检测的技术突破。每一帧都需要进行鱼和子弹 的碰撞检测,用的是两重循环逐个检查的方法。如果在飞的 子弹有 m 颗,鱼有 n 条,则算法的时间复杂度是 O(mn)量级 的。在发现碰撞之后,会释放渔网,这时需要检测渔网与所 有的鱼是否会发生碰撞。如果处理不好,时间复杂度会变成理之后,在一帧中最多只会释放一个渔网。(3) 鱼的游动采用了人工智能范畴的转向行为算法。所 采用的转向行为算法基于力学模型力作用于物体产生 加速度,加速度引起速度的逐渐改变,因此速度不会骤然剧 变,从而鱼的游动能够平顺自然。5结语在游戏设计过程中,我们领略了 AS3.0 强大的功能带来 的独特魅力,其封装性、灵活性给开发工作带来极大的便利, 也使得开发者在更多方面的发挥不受限制。随着网络的不 断发展与电子产品的增多,Flash 游戏在各种终端的普及率 越来越高,也使得 AS 技术的应用更加广泛,在网页游戏开发 的主流地位也进一步得以巩固。参考文献:1 Keith PetersFlash ActionScript 3.0 动画高级教程M苏金国 等译北京:人民邮电出版社,20102 朱冬玲用 AS3 和 Java 开发竞赛型多机游戏J福建电脑, 2012,73 adobe 公司adobe flash action script 3.0 中文版经典教程M北 京:人民邮电出版社,20094 王愉付震蓬罗慧隋涌 flash 互动游戏的开发与设计J 北京印刷学院报,200686 Jeff Fulton,Steve FultonThe Essential Guide to Flash GamesM USA:friendsof ED,2010Design and Development of Flash Game Based on AS3.0Peng Enuo(Guangzhou Public Utility Technician College, Guangzhou 510100, Guangdong)【 Abstract 】 Flash is applied widely in web game development because of its flexibility, convenience and small- size file. The scripting language Active Script 3.0 is fully object-oriented, which is more extensible, more readable, and has higher pe
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 矿洞辅助安全知识培训课件
- 协警面试题目及答案
- 石油炼化行业知识培训课件
- 圣诞节美国介绍
- 新技术、新项目临床应用可行性研究报告
- 路面三维激光扫描建模项目可行性研究报告
- 自来水管网改造项目可行性研究报告
- 2025年市场调研与分析师招聘面试模拟题集及答案大全
- 2025年特岗教师招聘考试美术学科知识点精讲
- 2025年金融行业从业员招聘考试模拟试题及答案解析
- 电影院安全生产责任制度
- GB 36889-2025化学纤维单位产品能源消耗限额
- 超声辅助制备Cu-Al(-TiB2)组织和性能研究
- 建设工程施工现场供用电安全规范2014
- 无障碍产品设计-洞察阐释
- 和平精英考试题及答案
- 器械gcp培训课件
- 中国工分制管理制度
- 广东省汕头市汕头市聿怀初级中学2025届八年级英语第二学期期中学业水平测试模拟试题含答案
- 口腔门诊运营管理实务
- 2024年湖南省古丈县卫生局公开招聘试题带答案
评论
0/150
提交评论