基于actionscript3.0的flash游戏设计(毕业论文).docx_第1页
基于actionscript3.0的flash游戏设计(毕业论文).docx_第2页
基于actionscript3.0的flash游戏设计(毕业论文).docx_第3页
基于actionscript3.0的flash游戏设计(毕业论文).docx_第4页
基于actionscript3.0的flash游戏设计(毕业论文).docx_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

北京工业大学耿丹学院毕业设计(论文) 题目:基于flash的游戏制作姓 名 李梦阳 系 名 信息工程系 专 业 计算机科学与技术 指导教师 施燕妹 日 期 2013.05 20诚信承诺 本人_声明,本论文及其研究工作是由本人在导师指导下独立完成,论文所利用的一切资料均符合论文著作要求,且在参考文献中列出。 签名: 日期: Abstract摘要随着现代科技的高速发展,短短几十年,电脑游戏得到迅猛发展。电脑游戏充分利用多媒体网络优势,拓宽了传统游戏的界限,给人们带来全新的体验。在这些游戏中,Flash游戏以其好看的动画,绚丽的声光效果,高度的通畅性,以及很强的可玩性,而受到广大青少年的青睐。 Flash软件由Macromedia公司推出,除了制作动画以外,还能实现交互功能。Flash是一种创作工具,设计人员和开发人员可使用它来创建演示文稿、应用程序和其它允许用户交互的内容。Flash 可以包含简单的动画、视频内容、复杂演示文稿和应用程序以及介于它们之间的任何内容。它不仅能够制作出许多眩目多彩的效果,只要你肯赋予它一定的情景,它也会模拟出现实生活中的场景。通过Flash生成的动画文件非常小,可以很好的用在网页设计及更多的领域。Flash可以采用补间形状或补间动画等多种手段,产生很复杂的动画;同时,Flash不同于gif动画,它可以附加很复杂的控制代码,从而开发出很复杂的应用,比如一些小游戏。在近年发展迅速,许多年青人投身其中,并在整个flash行业中发挥重要作用。flash player占据了90%互联网用户的浏览器,所以发的发展空间还十分巨大,前途不可估量。关键词:Flash;游戏;动画AbstractWith the rapid development of modern technology, only lasts for a few decades, computer games has been the rapid development. Computer games take full advantage of multimedia network, and widened the boundaries of traditional games, to bring to people new experience. In these games, Flash game with its nice animation, gorgeous sound and light effect, patency of height, and can play sex is very strong, by the majority of young people of all ages.Flash software produced by Macromedia company, in addition to other animation, can realize the interactive function. Flash is an authoring tool, designers and developers can use it to create presentations, applications and other content to allow user interaction. Flash can include simple animation, video content, complex presentations, applications, and anything in between them. It is not only able to create many of the dazzling and colorful effect, as long as you are willing to give it a certain scenario, it will simulate scenes in real life. Generated by Flash animation files are very small, can be well used in webpage design and more field. Flash can be used to complement the shape or the tweening animation and other means, to produce very complex animation; at the same time, Flash is different from GIF animation, it can be attached to the control code is very complex, which develop the application is very complex, such as a small game. Rapid development in recent years, many young people to join them, and play an important role in the whole flash industry. Flash player accounted for 90% of Internet users in the browser, so the development of space is still very great, with promising future.Key Words:Flash;Game;CartoonIII北京工业大学耿丹学院2013届毕业设计(论文)目录摘 要II第1章 绪论11.1 项目背景11.2 选题目的及其意义11.3 Flash游戏开发软件简介21.4 flash 游戏开发语言简介5第2章 系统分析82.1 需求分析82.2 可行性分析92.3 系统需求分析9第三章 游戏设计113.1 概要设计113.2 详细设计13第四章 游戏制作开发154.1 老虎机的算法154.2声音的实现174.3分数的增加184.4 制作流程图19第五章 系统测试205.1 软件测试205.2游戏系统测试23结 论25参考文献26附 录27致 谢28 -2 -第1章 绪论1.1 项目背景FLASH游戏是一种新兴起的游戏形式,以游戏简单、操作方便、绿色、无需安装、文件体积小等优点现在渐渐被广大网友喜爱。FLASH游戏又叫FLASH小游戏,因为FLASH游戏主要应用于一些趣味化的、小型的游戏之上,以完全发挥它基于矢量图的优势。FLASH游戏在游戏形式上的表现与传统游戏基本无异,但主要生存于网络之上,因为它的体积小、传播快、画面美观,所以大有取代传统web网游的趋势。现在国内外用FLASH制作无端网游已经成为一种趋势,只要浏览器安装了ADOBE的Flash player就可以玩所有的Flash游戏了,这比传统的web网游进步许多。 FLASH是开发的网页富媒体及强交互技术,最初用来研发交互式或动画网站组件,近几年获得了突飞猛进的发展。根据Adobe公司的统计其互联网PC桌面普及率达到了惊人的99%,而JAVA为85.1%。目前FLASH更在大力向PDA及智能手机终端发展。1.2 选题目的及其意义Adobe Flash CS6 是Adobe公司发布的一款软件,该款软件将对3D动画和视频硬件的加速及其它功能的改进提供更好的支持。和大多数软件一样,Flash软件也有文件,编辑,视图,插入等菜单。和其他软件不同之处在于,Flash除了有一个编辑区以外,还有一个时间轴。其中 Flash最令人称道的特点之一就是其所有的交互功能,而用Flash制作的游戏正是这种交互功能的综合体现。许多网站、网络广告经常将Flash游戏作为招揽人气的一种手段,而Flash游戏在这方面的表现也确定不负所望。一个好的Flash游戏,不仅能体现制作者的良好的Flash功底,而且可以吸引更多的浏览者,并且能够提升游戏发布方的形象。由此可见,Flash游戏设计的意义就在于:(1) 集合不同的艺术门类,把艺术与技术相结合。从而让人可以在游戏中的到美的享受。(2) 给广大的互联网用户提供了一个娱乐,休闲,放松身心的地方。(3) 让设计师之与玩家之间产生交流,从而完善游戏。(4) 操作便捷,文件携带方便,无需安装,符合了现在很多快餐式的生活要求便于大众随时的下载,游戏。(5) 有丰富的图像,画面不受软件的限制。富有创意,风格多变。是其他电子游戏没有的。1.3 Flash游戏开发软件简介1.3.1 Flash简介Flash的前身是Future Wave公司的Future Splash,是世界上第一个商用的二维矢量动画软件,用于设计和编辑Flash文档。1996年11月,美国Macromedia公司收购了Future Wave,并将其改名为Flash。在出到Flash 8以后,Macromedia又被Adobe公司收购。最新版本为:Adobe Flash CS6。1.3.2 Flash的特点1. 它是基于矢量的图形系统,各元素都是矢量的,只要用少量向量数据就可以描述一个复杂的对象,占用的存储空间只是位图的几千分之一,非常适合在网络上使用。同时,矢量图像可以做到真正的无极放大。这样,无论用户的浏览器使用多大的窗口,图像始终可以完全显示,并且不回降低画面质量。 2. 它使用插件方式工作。用户只要安装一次插件,以后就可以快速启动并观看动画,而不必像:Java那样每次都要启动虚拟机。由于Flash生成的动画一般都很小,所以,调用的时候速度很快。Flash plugin也不大,只有150KB左右,很容易下载并安装。 3. 它还提供其他的一些增强功能。比如,支持位图、声音、渐变色、Alpha、透明等。拥有了这些功能,完全可以建立一个全部由Flash制作的站点。 4. 这就是说,在观看一个大动画的时候,可以不必等到影片全部下载到本地再观看,而是随时可以观看,哪怕后面的内容没有完全下载到硬盘,也可以开始欣赏动画。1.3.3 Flash的应用领域Flash技术不断推陈出新,继席卷网页设计、网络广告之后,电影、电视、卡通、声乐将是它下一步引领风骚的舞台。FLASH从网络走向电影、电视、卡通、声乐,推动了传统媒体和互联网媒体的融合。网页设计者开始利用网络技术为商业、音乐电视和电视节目工作。 在网络电影领域,Flash技术自1997年由MACROMEDIA推出后,逐渐受到好莱坞制片公司的青睐,增加了微型电影和基于网络的电影制作,用它设计迷你电影与网络电影。 在电视广告领域,NETZERO公司官员日前说,最近他们运用MACROMEDIA公司的Flash软件制作了即将在黄金时段播出的电视广告宣传片,这种方式为公司节省了210万美元的制作成本。 在电视卡通剧领域,NELVANA的第一项新产品名叫WHEN QUADS WONT LEAVE,是世界上第一部完全由MACROMEDIA公司的FLASH软件制作的电视系列剧。Flash制作的节目可以同时在网络与电视台播出,一片两播,符合经济效益。半小时节目若用Flash技术制作,大约3至4个月就可杀青,若是其它技术,通常需要10-14个月。 在音乐领域,FlashMV更好的提供了在唱片宣传上既保证质量又降低成本的有效途径,并且将成功的把传统的唱片宣传推广带到电脑网路的更大空间。 在游戏领域,索尼公司也宣布它将把这项技术用于制作PlayStation 2的片头。此外由于它能够减少游戏软件中的电影片段所占数据容量,因此预计将为DVD游戏软件节省更多的空间。1.3.4 Flash的发展方向Flash被称为是“最为灵活的前台”,由于其独特的时间片段分割(TimeLine)和重组(MC嵌套)技术,结合ActionScitp的对象和流程控制,使得在灵活的界面设计和动画设计成为可能,同时它也是最为小巧的前台。Flash具有跨平台的特性(这点和Java一样),所以无论你处于处于何种平台,只要你安装了支持的Flash Player,就可以保证它们的最终显示效果的一致,而不必像在以前的网页设计中那样为IE或NetSpace各设计一个版本。同Java一样,它有很强的可移植性。最新的Flash还具有的手机支持功能,可以让用户为自己的手机设计喜爱的功能。当然首先必需要有支持Flash的手机,同时它还可以应用于Pocket PC。 那么,Flash可能的发展方向究竟如何?1.应用程序开发 由于其独特的跨平台特性、灵活的界面控制以及多媒体特性的使用,使得用Flash制作的应用程序具有很强的生命力。在与用户的交流方面具有其它任何方式都无可比拟的优势。但目前的现状是:很少有人具有运用Flash进行应用程序开发这方面的经验。但这个难度会随着时间的推移而逐步减弱。 2.软件系统界面开发 Flash对于界面元素的可控性和它所表达的效果无疑具有很大的诱惑。对于一个软件系统的界面,Flash所具有的特性完全可以为用户提供一个良好的接口。 3.手机领域的开发 手机领域的开发将会对精确(像素级)的界面设计和CPU使用分布的操控能力有更高的要求,但同时也意味着更加更广泛的使用空间。4.游戏开发 事实上,Flash中的游戏开发已经进行了多年的尝试。但至今为止仍然停留在中、小型游戏的开发上。游戏开发的很大一部份都受限于它的CPU能力和大量代码的管理。不过可喜的是,Flash Player 10运行时性能提高了很多;Actionscript 3.0的发布也使得程序更加容易维护和开发。 5.Web应用服务 其实很难界定Web应用服务的范围究竟有多大,它似乎它拥有无限的可能。随着网络的逐渐渗透,基于客户端-服务器的应用设计也开始逐渐受到欢迎,并且一度被誉为最具前景的方式。但是,这种方式开发者可能要花更多的时间在服务器后台处理能力和架构上,并且将它们与前台(Flash端)保持同步。 6.站点建设 事实上,现在只有极少数人掌握了使用Flash建立全Flash站点的技术。因为它意味着更高的界面维护能力和开发者整站架构能力。但它带来的好处也异常明显:全面的控制;无缝的导向跳转;更丰富的媒体内容;更体贴用户的流畅交互;跨平台和瘦客户端的支持;以及与其它Flash应用方案无缝连接集成等。 7.多媒体娱乐 其实,在这个方面无需再说什么。尽管它的发展速度没有像当初预言的那样迅速,但它仍然还在不断前进。Flash本身就以多媒体和可交互性而广为推崇。它所带来亲切氛围相信每一位用户都会喜欢。 8.教学系统 要在教学系统应用Flash现有的技术无疑会极大增强学生的主动性和积极发明的能力。在这方面涵盖的内容,可能所有现有技术你都可以用上了。根据你教学内容的不同你可能会选择不同的部份。Flash影片的后缀名为.swf,该类型文件必须有Flash播放器才能打开,但占用硬盘空间少,所以现在被广泛应用于游戏。 我在其中选择的是“游戏开发”,因为游戏开发的难度更大,不只是图形元素和帧的设计,更包含了控制和算法的代码,对学习来说,更有锻炼能力的价值1.4 flash 游戏开发语言简介1.4.1 ActionScript 3.0ActionScript 3.0 是一种强大的面向对象编程语言,它标志着 Flash Player Runtime 演化过程中的一个重要阶段。设计 ActionScript 3.0 的意图是创建一种适合快速地构建效果丰富的互联网应用程序的语言,这种应用程序已经成为 Web 体验的重要部分。 ActionScript 的老版本(ActionScript 1.0和2.0)提供了创建效果丰富的 Web 应用程序所需的功能和灵活性。ActionScript 3.0现在为基于Web的应用程序提供了更多的可能性。它进一步增强了这种语言,提供了出色的性能,简化了开发的过程,因此更适合高度复杂的Web应用程序和大数据集。ActionScript 3.0可以为以Flash Player 为目标的内容和应用程序提供高性能和开发效率。ActionScript 3.0 符合 ECMAScript Language Specification 第三版。它还包含基于 ECMAScript Edition 4 的功能,比如类、包和名称空间;可选的静态类型;生成器和迭代器;以及非结构化赋值(destructuring assignments)。随着 Web 应用程序项目需求的增长,也要求 ActionScript 引擎有重大的突破。ActionScript 3.0 引入了一个新的高度优化的 ActionScript Virtual Machine(AVM2),与 AVM1 相比,AVM2 的性能有了显著的提高。这使 ActionScript 3.0 代码的执行速度几乎比以前的 ActionScript 代码快了 10 倍。Flash Player 9 中包含 AVM2(ActionScript 3.0 的脚本语言引擎),设计它的目的是提供互联网应用程序开发人员所需的性能和特性。为了向后兼容现有的内容,Flash Player 将继续支持 AVM1。1.4.2 基于ACtionscript3.0平台的高级应用1.如何在flash中利用ActionScrip 3.0实现三维特效 我们希望在Flash平台上,通过ActionScript脚本语言来控制三维模型, 制作三维动画及多媒体作品。当我们要使用ActionScript来控制三维动作的时候,就必须利用一些数学知识,此时需要创建一个3D引擎来实现三维空间在二维视觉空间中的转换。描述二维空间中的任意一点,我们只需要知道X和Y坐标就可以了。在Flash中,舞台的左上角是二维坐标的原点(0,0),当在三维环境中时,我们需要再添加一个Z轴。Z轴要通过X轴与Y轴的交叉点,并与两个轴同时垂直,可以认为Z轴通过屏幕上的(0,0)点并穿过我们的眼睛,这时我们需要三个数字描绘三维空间中的一个点:(X,Y,Z)。 通过ActionScript的强大功能,可以模拟例如雨雪、流星等奇妙的三维动画视觉效果。下面我们就分析一个具体的例子:物体的三维光影效果。 制作思路 创建影片剪辑,其中包含了四帧,每一帧上有不同的代码。在该影片Flash中角度的计算: 剪辑中再建一个影片剪辑,主要是文字的常规关键帧动画。在代码中通过ActionScript来控制文字影片剪辑,使用while循环将该文字不断复制并改变其颜色、位置和透明度,从而实现物体的三维光影效果。2.ActionScript在Flash中制作交互动画的高级应用 在关键帧中利用ActionScript控制动画在Flash 中我们可以直接在时间轴上插入关键帧再创建补间设置循环播放的动画, 但是, 若要实现动画的单次播放, 则要给相应动画的结束关键帧的添加脚本语句来控制动画的单次播放。制作步骤如下: Step1:启动Flash 应用程序,新建Flash文档1,在此文档上添加文字工具,并输入相应用的文字,利用在时间轴上插入关键帧实现对输入文字的由小到大的变换动画。Step2:由于这里是要设置动画的单次播放,选择“文字由小到大变换”动画中的最后一帧添加脚本语句。 Step3: 单击动画中的最后一帧, 执行“窗口”菜单中的“动作”命令,打开动作面板,向其中输入语句:stop();,表示播放到该关键帧后会停止动画的播放。以上的三个步骤就可以实现动画的单次播放了。 为按钮添加ActionScript 控制动画的播放 通过按钮来控制动画的播放和停止,其原理是在按钮的动作面板中给按钮添加相应的动作脚本来实现。 制作步骤如下: Step1:在Flash 中制作一个简单动画,按Ctrl+Enter 播放,可看到动画反复循环播放。 Step2:制作按钮;执行“插入新建元件” 命令, 在出现的创建元件对话框中选择行为为“按钮”,在“弹起”关键帧中绘制按钮,按扭上的文字为“ 播放”,然后右击时间轴上的“点击”帧插入一个帧,同样的方法制作“停止”按钮,再返回舞台。Step3:在动画层上新建一图层,打开库面板,将刚制作的二个按钮元件,拖入新建的图层中, 调整按钮的位置。 Step4:设置ActionScript 脚本语句;选择动画图层中的第1 帧,在动作面板中输入stop(); ,设置动画在开始时不播放,再选中“播放”按钮,在动作面板中输入如下语句: on(press)play();, /on(press)作用单击鼠标时执行花括号内的语句同样的方法为“停止”按钮添加代码 on(release)stop();,on(release)作用是单击鼠标释放时执行括号内的语句。 Step5:按Ctrl+Enter 测试动画,以上的步骤可以实现用户控制动画的播放。-7 -第2章 系统分析2.1 需求分析1.消遣休闲 这种价值主要针对上班族(实际上,学生们也同样享受着这种待遇),工作之余,找一个世外空间,在这个空间里,可以随心所欲地游荡在虚拟世界,也没有人管束。游戏过程中,经常获得各种各样的些奖励,比起迷茫地闲逛、观看枯燥无味的电视节目,更让人兴奋。2.成就成就糸统让玩家不断获得装备、声望、金钱、经验、技能、荣誉、称号、宠物、道具、材料等的系统,玩家一玩,一边获得收益,玩家将会持续地沉浸在游戏世界中。3.幻想虚拟的游戏世界中,游戏设计者可以充分的发挥想象,用户也可以体验到现实中没有的内容。例如角色长了翅膀,或把敌人变成可爱的绵羊,或当上了国王,这些都是体验的形式。4.收获快乐幽默诙谐的人物形象或人物设定最容易让大众接受,让用户能笑起来,玩的时候很开心,生活总是乐观的,少一些抑郁,多一些欢乐,社会更和谐。5.满足审美需求艺术是人类以感情和想象作为特性的把握世界的一种特殊方式,即通过审美创造活动再现现实和表现情感理想,在想象中实现审美主体和审美客体的互相对象化。具体说,他们是人们现实生活和精神世界的形象反映,也是艺术家知觉、情感、理想、意念综合心理活动的有机产物。作为第九艺术,同样具备满足人类审美需求的功能。6.满足ACG人群的需求近几年来,中国的ACG人群逐渐增多,关于漫画周边的同人产品的需求也越来越大。所以出台一个以动漫喂主题的游戏是目前市场上的需求。2.2 可行性分析2.2.1经济可行性 当前计算机硬件成本在不断下降,软件也由于竞争而使性能价格比日趋合理,本系统所需的软硬件成本并不是很高,随着手机和电脑的普及,这样的小游戏也将随着普及。2.2.2技术可行性1.对游戏的简要描述随着当下大量的同人游戏,将开发这款以银魂为主题的同人老虎机flash游戏,他是基于FLASH CS6以及ActionScript3.0技术实现的2D游戏。玩家在玩这个游戏的时候不需要很多的操作技巧,是一款上手容易、可以即时即玩的日常游戏。玩家进入游戏后通过第三视角可以看到老虎机的正面。同时,可以通过操作鼠标来进行游戏。2.所掌握的技术运用photoshop做图片的技术,ActionScript3.0脚本设计,用photoshop游戏外观及用ActionScript3.0做游戏脚本,从硬件和开发环境来看,除了对游戏外观要求稍微高了点些,其他现有条件都可以得到满足,可以保证游戏的功能实现,以及稳定性,并且要求对游戏有一定的安全性要求,不得随意删除,修改以及增加有关数据,采用相关技术尽可能地提高系统的运行速度和降低CPU的使用率。2.3 系统需求分析2.3.1开发环境软件:Adobe Flash CS6 、Photoshop CS6系统:windows 72.3.2 应用平台语言:中文系统:Windows XP , Vista或 Windows 7CPU:Intel Core 2 Duo E4400 /AMD Athlon 64 X2 4000+内存:1 GB (WinXP), 2 GB (Vista, Win7)显卡:兼容DirectX 9.0c-256 MB显存声卡:兼容DirectX 9.0c第三章 游戏设计3.1 概要设计3.1.1角色设计游戏主角是动漫银魂中的角色有:坂田银时、神乐、志村新八、土方十四郎、冲田总悟、定春、桂小太郎、伊丽莎白、高杉晋助。为了迎合广大ACG爱好的需求所以选择他们作为游戏的主角,一共有九个人的头像作为老虎机转动的图像。九个图像随机分布、随机开始,随机停止。如图3-1所示图3-1 角色设计图3.1.2 场景设计1.游戏背景画面左右两边都是银魂主要的出场场景万事屋和真选组,因为在漫画中这两个场景是出现最多的,所以选择万事屋和真选组作为游戏的背景画面也是对漫画的一个概括,中间是游戏的主框架,如图3-2所示图3-2 游戏背景图2.开始游戏在游戏主框架的下方设计一个可以滑动的方块,是开始游戏的按钮,只要一滑动可移动的方块,头像就开始随机滚动。如3-3所示图3-3 滑块图3.游戏画面在游戏主框架上面设计一个玩游戏的界面,用于放主要人物头像和转盘,在滑动方块之后,这个界面会显示在转盘上随意滚动的头像。如3-1-3所示图3-4 游戏画面图4.在游戏界面和开始界面中间设计一个计分的界面,可以显示玩家所有的金币数。最初有50个金币。如3-5所示图3-5 计分图3.1.3风格设计总体采用了日式可爱,简单的设计理念。人物采用Q版风格。界面色调偏向于活泼动感,符合年轻人最求喜好。游戏配乐以轻快、节奏感较强的电子音乐为主。同时根据剧情添加各种音效,让玩家有身临其境的感觉。3.2 详细设计3.2.1规则设计1.每个玩家一开始会有50个金币。2.玩家开始游戏,滑动方块,转盘开始滚动,当停止滚动的时候,停止画面上,如果有三个同样的头像在一条直线,会给予玩家金币奖励,不同的头像奖励的金币数量不一样。如果得到金币奖励,系统会有提示音。3.每滑动一次方块,会扣掉1金币。4.当金币数为0时,游戏结束。3.2.2 游戏过程框架图游戏过程图,如图:开始游戏滑动方块转盘滚动转盘停止退出游戏扣除1金币出现三个头像在一条直线没出现三个头像在一条直线金币按相应的奖励增加同时图3- 游戏流程图第四章 游戏制作开发4.1 老虎机的算法4.1.1 原理老虎机这个游戏的基本算法是Monte Carlo即称计算机随机模拟方法,是一种基于随机数的计算方法,这一方法源于美国在第二次世界大战中研制原子弹的曼哈顿计划。该计划的主持人之一、数学家冯诺伊曼用驰名世界的赌城-摩纳哥的Monte Carlo-来命名这种方法,为它蒙上了一层神秘色彩。Monte Carlo方法的基本思想很早以前就被人们所发现和利用。早在17世纪,人们就知道用事件发生的频率来决定事件的概率。19世纪人们用投针试验的方法来决定圆周率。本世纪40年代电子计算机的出现,特别是近年来高速电子计算机的出现,使得用数学方法在计算机上大量、快速地模拟这样的试验成为可能。考虑平面上的一个边长为1的正方形及其内部的一个形状不规则的图形,如何求出这个图形的面积呢?Monte Carlo方法是这样一种随机化的方法:向该正方形随机地投掷N个点,其中有M个点落于图形内,则该图形的面积近似为M/N。 可用民意测验来作一个不严格的比喻。民意测验的人不是征询每一个登记选民的意见,而是通过对选民进行小规模的抽样调查来确定可能的优胜者。其基本思想是一样的。科技计算中的问题比这要复杂得多。比如金融衍生产品(期权、期货、掉期等)的定价及交易风险估算,问题的维数(即变量的个数)可能高达数百甚至数千。对这类问题,难度随维数的增加呈指数增长,这就是所谓的维数的灾难(Course Dimensionality),传统的数值方法难以对付(即使使用速度最快的计算机)。Monte Carlo方法能很好地用来对付维数的灾难,因为该方法的计算复杂性不再依赖于维数。以前那些本来是无法计算的问题现在也能够计算量。为提高方法的效率,科学家们提出了许多所谓的方差缩减技巧另一类形式与Monte Carlo方法相似,但理论基础不同的方法-拟蒙特卡罗方法(Quasi-Monte Carlo方法)-近年来也获得迅速发展。我国数学家华罗庚、王元提出的华-王方法即是其中的一例。这种方法的基本思想是用确定性的超均匀分布序列(数学上称为Low Discrepancy Sequences)代替Monte Carlo方法中的随机数序列。对某些问题该方法的实际速度一般可比Monte Carlo方法提出高数百倍,并可计算精确度。4.1.2基本算法设P(i),其中i=1.n,为n个个体被选择的概率,在轮盘上表示为所占扇区的面积百分比,这里显然sum(P)=1。select用来保存n次选择的结果。1)可以想象一个转动的轮盘,注意这里轮盘最多只转一圈。每次转轮盘前,把色子随机放到轮盘外缘的某处,即色子不随轮盘转动,以一个随机数sel代表它所处的位置。轮盘转动后,色子所指示的轮盘扇区号不断变化,轮盘停止时色子所指示的轮盘上扇区号,即为本次轮盘赌所选中的个体号,这种方法精度很低。for i = 1:n; /第i次掷色子 sel = rand; /产生一个0、1之间的随机数,代表色子在轮盘外缘所指示的位置 sumPs = 0; /轮盘初始转动的位置,从0变化到1 j = 1; /轮盘初始指示的位置 while sumPssel; /终止条件为轮盘转动的位置超过色子位置 sumPs = sumPs + P(j); /轮盘转动 j = j + 1; /轮盘指示位置 end select(i) = j-1; /轮盘停止时色子停留位置所指示的个体 end /循环终了,会对轮盘上由P所划分出来的n个区间产生n次随机选择,扇区越大,该扇区被选中的几率也越大 2)这种方法可以想象成往划分好扇区的轮盘里扔色子,事先生成一组满足均匀分布的随机数,代表n次掷色子或者n个色子一起扔,轮盘不动,色子所在区域为选择结果,这种方法精度很高。 r = rand(1,n) /预先产生n个色子的位置,注意这里r服从0、1之间均匀分布 for i = 1:n /第i次轮盘赌 select(i) = n; /本次轮盘赌的结果初始化为n for j = 1:n /轮盘开始转动 if r(j) =P(i) /若色子停在轮盘第j扇区 select(i) = j; /则第i次轮盘赌的结果为j break; /第i次轮盘赌结束 end % /第i次轮盘赌结束 end % /n次轮盘赌结束 本程序中轮盘赌方法的准确程度可由如下程序验证 P=rand(10,1); P=P./sum(P); Select=Roulette(P,1e6); for i=1:10 Ps(i)=(sum(Select=i)/1e6); end 最后验证该轮盘赌方法准确程度 比较P和Ps差异大小,例如sum(P-Ps).2),数值越小,模拟结果越好4.2声音的实现Adobe Flash CS6提供了几种使用声音的方法。可以使声音独立于时间轴连续播放或使动画和一个音轨同步播放。在 Flash 中有两种类型的声音事件声音和音频流。事件声音必须完全下载后才能开始播放除非明确停止它将一直连续播放。音频流在前几帧下载了足够的数据后就开始播放,音频流可以通过和时间轴同步以便在 Web 站点上播放。我在游戏里使用了一个重要的声音函数是“attach Sound”它是属于事件声音的。加载库声音就是导入一个声音到库中,再从库中调用这个声音。Attach Sound就是专门针对库的利用声音文件的库的ID的String名称传递attach Sound方法,最后使用start方法才能开始播放此声音。例如在游戏中我调用声音的方法如下:(1)将音乐导入到“库”中。右击“库”中的音乐对象,在弹出的快捷菜单中选择“链接”命令,打开“链接属性”对话框,勾选“为动作脚本导出”和“在第一帧导出”复选项,设置标识符为“my Sound”。(2)在第1帧上添加如下脚本:My Music=new Sound(); /建立一个名为my Music的声音对象。My Music.attach Sound(my Sound);/将链接标识符为my Sound的音乐捆绑到my Music对象上(3)在播放音乐的按钮上添加如下脚本:On (press)var t=my Music.position/1000;/计算声音当前播放的位置。My Music.start(t); /从当前位置开始播放。position是Sound类的一个属性,可以获得声音对象播放的当前位置。在制作Flash动画时,这个属性经常会被用到。比如制作MP3播放器,如果制作一个控制音乐播放进度的滑块,那么就可以用这个属性来实现相应的算法。必须使用构造函数 new Sound 创建一个 Sound 对象,然后再使用attach Sound来调用这个对象。4.3分数的增加Flash中常用的文本形式有三种:分别是静态文本、动态文本和输入文本。静态文本中的文本在影片导出后是静止的,只能根据设置的动作进行运动而文本本身的内容并没有改变,动态文本则可以根据制作时的设定或是由AS脚本进行控制进行更改,可以动态更新的文本会根据情况动态改变文本的内容,常用来实时显示操作运行的状态,输入文本是可以接受用户输入的文本是响应键盘事件的一种,是一种人机交互的工具。在制作游戏的增加分数的时候需要一个文本框来记录用户的游戏得分,这个分数是根据游戏情况动态改变的。这时候我们就需要用到动态文本。当有三个一样的头像出现在一条直线的时候,比如金币增加25个,那么在分本框中的金币就是现有的金币加上25个。theScore = theScore + 25; /分数4.4 制作流程图制作流程图,如图Flash游戏开发流程信息采集游戏设计与开发游戏调试前台制作:游戏美术设计静态设计动态设计后台制作:游戏代码游戏脚本游戏代码界面设计角色设计场景设计AS代码设计交互式多媒体制作图3-1 流程图第五章 系统测试5.1 软件测试5.1.1软件测试简介软件测试是使用人工或者自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。它是帮助识别开发完成(中间或最终的版本)的计算机软件(整体或部分)的正确度(correctness) 、完全度(completeness)和质量(quality)的软件过程;是SQA(software quality assurance)的重要子域。Grenford J.Myers曾对软件测试的目的提出过以下观点:1. 测试是为了发现程序中的错误而执行程序的过程2. 好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案3. 成功的测试是发现了至今为止尚未发现的错误的测试。4. 测试并不仅仅是为了找出错误.通过分析错误产生的原因和错误的发生趋势,可以帮助项目管理者发现当前软件开发过程中的缺陷,以便及时改进。5. 这种分析也能帮助测试人员设计出有针对性的测试方法,改善测试的效率和有效性6. 没有发现错误的测试也是有价值的,完整的测试是评定软件质量的一种方法7. 另外,根据测试目的的不同,还有回归测试、压力测试、性能测试等,分别为了检验修改或优化过程是否引发新的问题、软件所能达到处理能力和是否达到预期的处理能力等。5.1.2软件测试原则1. 测试应该尽早进行,最好在需求阶段就开始介入,因为最严重的错误不外乎是系统不能满足用户的需求。2. 程序员应该避免检查自己的程序,软件测试应该由第三方来负责。3. 设计测试用例时应考虑到合法的输入和不合法的输入以及各种边界条件,特殊情况下要制造极端状态和意外状态,如网络异常中断、电源断电等。4. 应该充分注意测试中的群集现象。5. 对错误结果要进行一个确认过程。一般由A测试出来的错误,一定要由B来确认。严重的错误可以召开评审会议进行讨论和分析,对测试结果要进行严格地确认,是否真的存在这个问题以及严重程度等。6. 制定严格的测试计划。一定要制定测试计划,并且要有指导性。测试时间安排尽量宽松,不要希望在极短的时间内完成也有一个高水平的测试。7. 妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便。5.1.3软件测试方法1. 等价类法(1)定义是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。该方法是一种重要的,常用的黑盒测试用例设计方法。(2)划分等价类等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试,因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件就可以用少量代表性的测试数据取得较好的测试结果。等价类划分可有两种不同的情况:有效等价类和无效等价类。1)有效等价类是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。2)无效等价类与有效等价类的定义恰巧相反。无效等价类指对程序的规格说明是不合理的或无意义的输入数据所构成的集合。对于具体的问题,无效等价类至少应有一个,也可能有多个。设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合理的数据,也要能经受意外的考验,这样的测试才能确保软件具有更高的可靠性。(3)划分等价类的标准1)完备测试、避免冗余;2)划分等价类重要的是:集合的划分,划分为互不相交的一组子集,而子集的并是整个集合;3)并是整个集合:完备性;4)子集互不相交:保证一种形式的无冗余性;5)同一类中标识(选择)一个测试用例,同一等价类中,往往处理相同,相同处理映射到相同的执行路径。(4)划分等价类的方法1)在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。如:输入值是学生成绩,范围是0100;2)在输入条件规定了输入值的集合或者规定了必须如何的条件的情况下,可确立一个有效等价类和一个无效等价类;(5)静态测试1)代码检查:代码会审、代码走查、桌面检查2)静态结构分析3)代码质量度量(6)动态测试1)黑盒测试:又称功能测试。这种方法把被测软件看成黑盒,在不考虑软件内部结构和特性的情况下测试软件的外部特性。2)白盒测试:又称结构测试。这种方法把被测软件看成白盒,根据程序的内部结构和逻辑设计来设计测试实例,对程序的路径和过程进行测试。5.1.4软件测试步骤系统测试过程按4个步骤进行,即:单元测试、组装测试、确认测试、系统测试。(1).单元测试单元测试集中对用源代码实现的每一个程序单元进行测试,检查各个程序模块是否正确地实现了规定的功能。(2).然后进行集成测试根据设计规定的软件体系结构,把已测试过的模块组装起来,在组装过程中,检查程序结构组装的正确性。(3).接着,进行确认测试确认测试是检查已实现的软件是否满足了需求分析确定了的各种需求,以及软件配置是否完全、正确。(4).最后,是系统测试系统测试把已经经过确认的软件纳入实际运行环境中,与其他系统成分组合在一起进行测试。严格地说,系统测试已经超出了软件工程的范围。而在实际工作中这几个阶段是相互交叉的。模块检测是检验设计的最小单元。主要根据详细设计为指南,对重要的执行进行测试。对每个功能模块的测试过程中主要检查表单的设计、检查试图的设计等。5.2游戏系统测试5.2.1游戏测试环境系统:Windows XP , Vista或 Windows 7CPU:Intel Core 2 Duo E4400 /AMD Athlon 64 X2 4000+内存:1 GB (WinXP), 2 GB (Vista, Win7)显卡:兼容DirectX 9.0c-256 MB显存声卡:兼容DirectX 9.0c5.2.2游戏模块测试1.开始游戏:测试方法:滑动方块,头像开始随机滚动,随机停止。测试结果:实现了游戏初始化、变换,等功能。(2)游戏声音:测试方法:滑动方块,头像随机滚动后随机停止,有三个相同的头像在一条直线上,有系统音提醒。测试结果:实现了对游戏的背景的音乐控制。(3)游戏金币:测试方法:滑动方块,头像随机滚动后随机停止,有三个相同的头像在一条直线上,有系

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论