《基于Flash的闯关游戏的设计与实现》13000字【论文】_第1页
《基于Flash的闯关游戏的设计与实现》13000字【论文】_第2页
《基于Flash的闯关游戏的设计与实现》13000字【论文】_第3页
《基于Flash的闯关游戏的设计与实现》13000字【论文】_第4页
《基于Flash的闯关游戏的设计与实现》13000字【论文】_第5页
已阅读5页,还剩27页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

基于Flash的闯关游戏的设计与实现摘要Flash游戏是独立的、简单的、方便的、不需要安装的游戏且被大部分人喜欢。现在各种各样的游戏主题仍在持续更新,制作技术也不断精进,因此通过制作或设计闯关游戏不仅可以使得游戏制作水平在一定程度上得到发展,更能满足更多年龄段的玩家的游戏需求。丰富的游戏画面、动听的音乐及恰当的音效、再加上易于上手的游戏操作,能让玩家全身心地投入,并从中体验到刺激的心跳和征服游戏的快感,因此被游戏所吸引力,感受其深层次的魅力。游戏主要以ActionScript语言作为开发的动作脚本,在FlashCS6环境中进行开发,游戏大致为放鞭炮的故事。游戏共五个界面:主界面,说明界面,游戏界面,成功界面,失败界面等组成。从游戏的功能点来看,游戏可以分为如下几大模块,分别为:场景切换模块,按钮触发模块,弹弓弹射模块,子弹飞行模块,子弹碰撞模块等。首先对游戏市场进行了调查剖析,分析此次疫情为游戏产业带来了促进上升的“宅经济”。接着从需求分析、设计原则上对游戏进行了整体策划,设计并实现了一款简单的闯关游戏,玩家只需通过点击鼠标拖拽子弹击中更多的鞭炮,通关即可。本游戏通过添加难度不同的游戏关卡为用户提供了更加丰富的游戏体验感。最后,通过游戏测试来识别和改进问题。关键词:闯关游戏;脚本语言;关卡目录TOC\o"1-3"\h\u181671.绪论 129061.1研究的背景及意义 1261591.1.1研究的背景 1246131.1.2研究的意义 129601.2国内外现状 2213381.2.1国外研究现状 271821.2.2国内研究现状 2100271.3研究的主要内容 2178831.4论文的组织结构 3202422.游戏应用技术 488112.1FlashCS6 455542.2Photoshop 4273552.3ActionScript编程语言 4147443.游戏需求分析 543893.1可行性分析 5296623.1.1技术上的可行性 585273.1.2经济可行性 5224403.1.3操作性可行性 5250323.2功能需求分析 5169833.3非功能需求分析 5188573.3.1性能需求 563203.3.2安全性需求 610504.游戏设计 7108834.1游戏总体设计 785404.2游戏详细设计 798924.2.1游戏功能设计 725614.2.2游戏元件的设计与制作 8133784.2.3游戏场景的设计 8314544.2.4游戏关卡的设计 9292144.2.5音乐和音效 10140724.2.6动作 11146054.2.7设计应用分析 1139854.2.8游戏操作流程 1198945.游戏动画实现 13249105.1影片剪辑的制作与实现 1387495.1.1设计炮弹影片剪辑 1371635.1.2设计身体影片剪辑 1332015.1.3设计信息栏影片剪辑 16101305.1.4设计选择栏影片剪辑 16156525.1.5制作弹弓 175245.1.6制作弹夹 18134815.1.7制作子弹 1987765.1.8关卡制作 19278355.1.9过关和失败影片剪辑制作 21103375.2主场景的制作与实现 22260185.2.1背景时间轴 22229625.2.2内容时间轴 23175945.2.3发射台时间轴 2435636.游戏测试 26132266.1游戏测试的方法 2676566.2游戏测试的过程 26282646.3游戏测试的结果 26107967.总结和展望 2877547.1游戏总结 28211747.2游戏展望 2816027参考文献 301.绪论1.1研究的背景及意义1.1.1研究的背景近几年,中国游戏用户数量接近6.5亿人,与上一年相比增长了2.5%,其中女性用户数量低,基本保持稳定[1]。有报道称,目前中国游戏市场整体营销收入持续增长,手机游戏收入占整体营销收入比列高,网页游戏占整体营销比重下降至5%[2]。2020年游戏产业将会如何发展呢?疫情为游戏行业带来了很大的影响,对文化娱乐方面投入升级,将提高在线游戏在居民消费结构中的比重,加速住宅经济的升温,在此次重大事件中,加快在线游戏产业产生被动住房的叠加效应,进一步提升住房经济的消费基础[3]。作为领衔经典大作《王者荣耀》[4],春节期间依旧表现强劲,这受到许多因素的影响,例如时间限制、空间距离和复工复产等,直至2020年初该游戏已经连续占据榜首多天。根据该游戏的在榜单上的活跃程度,以及春节这个时间段进行大量的促销活动,能够推断出该游戏会在春节期间的迎来数据的历史新高[5]。随着通信技术革新、电子移动设备的丰富、支付方式变得灵活便捷及互联网的快速发展,网络游戏在人们心目中的宽容度越来越高,各大游戏制造厂也开始展露头角[6]。例如网易游戏旗下的工作室也不断的在开发新的游戏,国民影响度最大的例如“梦幻西游”,“倩女幽魂”,“第五人格”“阴阳师”[7]等,这几款游戏覆盖面广,受到学生、青年人、中年人的青睐,由此可见游戏带给人的影响范围之大。1.1.2研究的意义Flash具有跨平台的灵活性[8],可以进行一些简单、灵巧的设计,在Flash设计行业中没有完整的界面设计理论[9]。只要你安装了Flash,就确保他们看起来是一样的,还可以制作一个IE版本和Netspace版本[10]。它是非常便携,尤其是在小型网络和设备上,你还可以用最新的移动设备为你的手机设计你最喜欢的功能。Flash是一种媒体丰富、交互性强的技术,已经开发许多成熟的游戏[11]。根据有关公司统计,在互联网上,Flash在台式电脑的普及率与Java普及率相比,上升了13.9%。当前,Flash还在向智能手机方向发展[12]。本课题的研究在实际应用中有着重要的意义。Flash包括几种类型的程序代码分析,Java和JavaScript类语法允许控制不同类型的Flash动画功能。AS3.0支持套接网络功能,允许许多人开发大的页面游戏,这就是Flash游戏流行的原因之一。尽管时代更迭,Flash软件已经出现替代的软件,但它就像C语言一样,在其行业中有着不可磨灭的作用,因此研究此课题是十分有意义的。1.2国内外现状1.2.1国外研究现状在国外,Flash发展成熟,技术高于国内,不论在游戏性还是视觉效果都达到了极高的领域,Flash游戏也基本达到了全民普及的程度。国外优秀的Flash闯关作品有森林冰火人、cool做饭小游戏等[13],是非常受欢迎的。1.2.2国内研究现状在国内,80后和95后对Flash游戏是有关注的,他们见证了Flash游戏的兴起和发展。在2005年数据费用较高的情况之下,以Flash为基础,开发出了多元化功能和轻量级系统的游戏,诸如小花仙、赛尔号、摩尔庄园、黄金矿工这些耳熟能详的小游戏。对游戏开发者而言,提高游戏的制作速度增添游戏的视觉张力,可以促使Flash游戏爆发性成长。但是在国内更多还是引进Flash游戏,而不是去本土开发创作游戏,且国内市场缺乏这类技术人才。国内对Flash的应用重点放在了动画电视和宣传广告上,且缺乏游戏创作的人才,因此可以看出Flash游戏的发展,国内远落后于国外[14]。在国外出现非常优秀的Flash游戏作品,以及各种2D引擎、3D引擎的时候,国内反而比较落后[15]。但我们相信,这种情况会被改变的。Flash游戏的流行和出色的国产作品的涌现将改变他们的观点,因此许多好玩的游戏,尤其是一些经典的,是需要我们去保持和维护的。而闯关游戏就是我们实现用Flash工具开发的一个好的开始[16]。1.3研究的主要内容本课题是一款基于Flash的闯关类型游戏也是物理类小游戏,整体通过二维动画来实现。主要原理为利用一些物理知识,如加速度、重力、角度和力量来挑战看似不可能的事情。一般的闯关游戏通常由键盘控制角色的移动或攻击,而这款游戏是由鼠标控制,玩家可以运用熟练地鼠标操作完成各种关卡,达到游戏目标分值,通过拖拽鼠标进行控制,就像愤怒的小鸟、炮打笑脸等游戏。本题部分元件和影片剪辑由本人Flash制作完成,部分图片由Photoshop制作,背景图片和音乐由网站上下载。1.4论文的组织结构本文总共分为七部分,主要结构如下:第一部分为绪论,介绍了本课题的研究背景、意义、国内外发展现状、主要内容以及课题的组织结构。第二部分为游戏应用技术研究,介绍了游戏设计与实现过程中所用到的主要技术,比如:FlashCS6、Photoshop等,还有ActionScript语言,通过在脚本编辑器中编写代码,执行游戏。第三部分为需求分析的研究,主要从可行性的技术上、经济上、操作上进行分析,还从功能需求上分析,最后从非功能的性能需求和安全需求上进行表述。第四部分游戏设计,从总体设计和详细设计两个大方面进行概述,然后从功能、元件、场景、关卡、音乐、设计应用、操作流程这八个方面对游戏的详细设计进行表述。第五部分游戏实现,这里主要从影片剪辑与主时间轴的制作和实现来描述。第六部分游戏测试,从主要从测试方法、过程和结果三方面进行分析并得出结论。第七部分总结和展望,总结了本文所做主要课题内容以及如何去做,接着对本游戏的接下来的发展,提出了期望。2.游戏应用技术2.1FlashCS6FlashCS6,是将音乐、动画及丰富的界面结合在一起,产生的高质量动态效果的交互式动画制作工具[17]。不包括有能力开发精美的矢量图形,FlashCS6还有能与其他软件相比拟的优势,通过制作动态的影片剪辑以及利用编辑器加入动作代码以产生惊艳的效果。在实际设计的同时,还可以体验在台式电脑、智能手机、平板和智能电视等多种设备上产生的协同效果的用户体验。2.2PhotoshopPhotoshop图像处理能够进行图像的编修与调整、选取与编辑、绘图和修图、填充与擦除、图层与路径、蒙版和通道等方面的操作[18]。该软件可以位图图像进行编辑和处理已达到理想的设计效果,使用位图形状在图像显示出阴影或特殊处理效果,是其最佳选择选项,是矢量图软件无法与之相比的优点[19]。2.3ActionScript编程语言ActionScript脚本语言是由Adobe为Flash设计的一种交互式编程语言,它也是一种核心对象是ActionScript3.0且是面向对象的编程语言[20]。所有变量均以编程方式定义,像其他语言一样描述了作为对象创建的所有函数和所有实例,并根据特定的语法规则,对变量进行定义和使用其来存储和检索数据。在Flash二维动画软件中实现了双向性交互,数据处理及其他功能并发挥着重要作用。游戏需求分析3.1可行性分析3.1.1技术上的可行性基于Flash结合ActionScript[21]语言制作,包含游戏开发所需的所有功能,如游戏界面、场景编辑、测试和游戏发布,并将所有的功能集成到一个统一的文档程序里[22]。再者,闯关游戏这个领域日益成熟为游戏开发提供系统化思想,因而开发出这样的个游戏是完全可能的。3.1.2经济可行性Flash游戏受到欢迎,是因为游戏制作过程简单,软件易于使用、不需要安装且最终文件容量小的优点,主要通过充分利用矢量映射的优势来制作小型趣味游戏[23]。然后经过这些年积累,形成了用户喜爱的、种类丰富、包括闯关游戏在内的生态环境,大范围的全民赢取小福利的活动大大的促进了Flash在游戏市场的增长,并且此游戏开发周期短,盈利性强,因此开发一款Flash游戏在经济盈利上是完全可行的。3.1.3操作性可行性本游戏的用户界面较为友好,提供了多种操作提示,即使是第一次打开本游戏的玩家也可以迅速熟悉游戏的所有任务,游戏的任务难度是可以接受的,因此在操作上本游戏是可行的。3.2功能需求分析本游戏主要是设计出一款物理类设计游戏,点开开始按钮进入游戏界面,通过拖拽子弹,释放子弹来击中更多的鞭炮,达到本关分数,则出现过关界面,反之,出现失败界面即游戏完结。总共设计了10个关卡,每个关卡难易程度不同,越到后面越难。还设计了4种不同的子弹,威力也不同,使玩家有不同的游戏体验感。从游戏的功能需求上来看,主要的需求为:场景切换,按钮触发,弹弓弹射,子弹飞行,子弹碰撞等。3.3非功能需求分析3.3.1性能需求Flash闯关游戏应能在各种型号的电脑端稳定运行,没有明显的逻辑错误和故障,且可以流畅无卡顿的顺利通关[24]。对CPU也没有硬性的要求,一般只要安装好软件,即可运行。3.3.2安全性需求Flash慢慢的受到广大的玩家欢迎,主要因为其能够绿色安装、操作简便、所占文件体积小等优点。Flash能保证游戏稳定安全的运行,不会让玩家数据丢失,确保玩家的安全与可靠。 4.游戏设计4.1游戏总体设计游戏的灵感来源于生活,随着现代技术的高速发展,人们的生活节奏越来越快,科技在为我们带来美好的生活,同时也给我们的家园带来了伤害,为了保护环境,我们禁止明放烟花和鞭炮。但是烟花和鞭炮是我们生活中最美好的记忆。因此我设计了一款“快乐放鞭炮”的闯关类游戏。刚开始利背景图片和元件做游戏的主界面,进去游戏主界面后鼠标点击场景中的游戏说明按钮可以看到游戏规则,要想返回到主场景中需再按一下返回按钮即可,然后通过双击开始进入闯关模式中的关卡1,接着按返回按钮回到主界面并点击开始游戏按钮进入闯关模式中的,通过点击鼠标拖拽弹弓上的子弹,让其射到空中点燃更多的鞭炮,取得更多的分数,达到目标分数才算成功,成功即可点击下一关按钮进入下一个关卡2,反之,则选择返回按钮回到主界面,从头开始闯关。总共设计了10个关卡,每个关卡难易程度不同,越到后面越难。还设计了4种不同的子弹,威力也不同,达到不同的游戏体验感。设计思路如图4.1所示。图4.1设计思路4.2游戏详细设计4.2.1游戏功能设计就游戏功能而言,游戏可分为以下主要模块:场景切换模块,按钮触发模块,弹弓弹射模块,子弹飞行模块,子弹碰撞模块等。如主要功能图4.2所示。图4.2主要功能模块4.2.2游戏元件的设计与制作元件用于创建和重复使用的影片剪辑、字体、矢量图形和按钮等,并且创建可以减少视频文件的大小来加快动画播放的速度[25]。将组件移动到舞台上,用户可以在不影响每个功能点的情况下任意更改该组件属性和其他动态效果,使用起来方便、快捷、高效。本项目主要设计一些鞭炮、月亮、楼台、子弹、弹弓、砖块等,其中影片剪辑元件用于创建动态片段,其拥有独立于主影片的时间轴,还可以与ActionScript[26]脚本和音频兼容,具有高度的交互性,可以说影片剪辑就是一个小的分支影片,功能强大;带有“返回”、“下一关”字样的按钮,充当游戏中切换场景的开关;月亮和楼台等图形拖进舞台充当背景还可以引用其他等元素,例如声音、动画和组件的位图等。4.2.3游戏场景的设计这款游戏主要设计3个场景,第一个场景是主界面的设计,由于这是一款物理类的闯关游戏,其目标是点燃更多的鞭炮,在现实生活中,我们主要是在晚上点燃鞭炮,这样才可以观赏到它燃放时所散发的光芒。因此游戏将主界面背景颜色定为深色系,让游戏围绕黑夜展开,又为了避免背景过于单调,设计了一些闪亮的星星和皎洁的月亮来为黑夜增添一丝亮丽的色彩,使整体效果更佳舒适。通过设计动态楼房,营造出一种高级感。同时为了增添中国元素,在“快乐放鞭炮”,标题中添加红色鞭炮、爆炸的小元素,还添加一些子弹、火星、魔法球等元素,使玩家能够被封面所吸引。如主界面图4.3所示。图4.3主界面第二个界面就比较简单,主要是介绍游戏规则的场景,所以就沿用主界面的背景颜色,不添加任何装饰,直接显示游戏规则即可,这样的界面简洁又大方,还能让玩家看懂游戏规则。如图4.4所示。图4.4游戏说明界面第三个界面是游戏为了与主舞台分隔开,选用了比深蓝色稍微亮一点的蓝色天空背景,接着添加月亮、星星、现代化都市,还设计了楼台,同时也添加了信息栏,主要用于显示关数、得分、目标分数、总数等信息。4.2.4游戏关卡的设计如果游戏的难度一直都是一个水平,这样玩家在整个游戏的过程中感觉会是枯燥且乏味的,而且随着玩家对游戏的深入操作,其操作会越来越娴熟、灵敏,这样的话游戏的整体难度就需要升级了。对于不同种类的游戏,提高游戏难度又有着不同的方法。本游戏增加难度的方法主要有四种,首先最简单的方法就是提高关卡的目标分数,使其需要花费较长的时间。接着可以增加场景中地图的难度,可以将舞台中的元件摆放在不同位置,设计出复杂并且难度极高的任务。然后增加武器装备的种类,增加射击对象,并在释放时出现不同的花样来吸引玩家;还可以设计组合技能,也就是通常所说的大招及一击制敌。最后一种方法是既增加地图难度,又增加武器装备种类和组合技能,还能提高目标分数,通过对三者的结合,产生叠加效应,使游戏的难度又上升一个高度。本课题中关卡的设计,在第一关中,用最普通最简单的设置,使用子弹A去点燃密集摆放的鞭炮这样更容易击中,另外这一关的子弹数量最多,且需要达到的目标分数最小,因此很容易过。第二关到第十关,通过更换子弹种类,降低子弹数量,提升目标分数,来提高游戏难度,其中,在第六关到第九关中,还增加了障碍物砖块,来增加射击难度。让玩家能够有更好的游戏体验感。如图4.5所示。图4.5关卡界面4.2.5音乐和音效随着游戏的不断发展,玩家对游戏的要求越来越高了,当玩家处于十分安静的游戏环境中,没有玩家能玩下去。而现在市面上的游戏,无论是格斗类游戏还是益智类游戏,都添加了音乐和音效,因此可以看出音乐和音效的重要性。如果你在一个战斗类型的游戏中加入一个轻音乐,营造出一种温馨浪漫、轻松优美的情调,与其游戏画面不匹配导致玩家体验感不佳。因此添加音乐时要注意的是添加与游戏整体内容相符的音乐和音效。与图片相比音乐文件所占的内存还是很多的,因此在选择游戏背景音乐时需要避开那些华而不实且内存很大的音乐。同时在使用音乐上要注意添加的音乐贴合游戏本身。主背景音乐挑选了一些轻快的纯音乐。此外游戏还添加了一些其他音效。列如:叮的一声,点击屏幕的声音;砰的一声,爆炸声响;噼里啪啦,连续爆炸的声音和弹弓弹射时咻咻咻的声音,让玩家能够更加真实的体验游戏。4.2.6动作在游戏的制作过程中,语言处于十分重要的地位,在Flash中主要运用的就是ActionScript动作语言,通过掌握ActionScript语言规则,灵活编写脚本,实现内容上的交互性,脚本上的简洁性和高效性,从而制作出画面精美和互动性强的Flash游戏。4.2.7设计应用分析在本游戏制作过程中,主要包括以下重点:(1)创建自定函数clean。(2)创建_alpha透明度的属性,实现其特定效果。(3)通过Mouse类获取光标值。(4)通过代码修改X、Y轴坐标属性,从而实现元件的移动。(5)使用for函数批量定义变量。(6)使用_rotation函数获取元件角度。(7)使用if语句结合hitTest函数,运用碰撞算法。判断对象与障碍物是否发生触碰。(8)获得当前该元件所在位置的帧数使用currentfram语言。(9)运用数学类的属性和方法处理函数。(10)通过帧标签定位,查找音乐等其他元素的位置。(11)使用Parent函数获取上一级的变量。(12)使用removeMovieclip命令删除指定元件,运用消除算法。4.2.8游戏操作流程在本游戏中,游戏操作流程图,如图4.6所示。图4.6操作流程图5.游戏动画实现5.1影片剪辑的制作与实现影片剪辑元件是Flash中最重要的一种元素,使用影片剪辑元件可以创建重复的动画片段,拥有独立的主影片时间轴播放的多帧时间轴。通过在影片元件中添加动作脚本,使其实现独特的动画效果,让影片元件在设计上更活灵活现。如表5.1所示。表5.1时间轴控制语句常用事件含义load将影片剪辑实例加载到时间线中时触发的事件unload从时间线中删除元件时触发的事件enterFrame只要播放头进入实例,就会触发播放头mouseMove鼠标移动时mouseDown按下鼠标mouseUp释放鼠标keyDown按下某键时触发keyUp释放某个键时启动此动作press按下鼠标左键release释放鼠标左键releaseOutside点击后在按钮外部释放鼠标rollOut鼠标指针滑出按钮区域rollOver鼠标指针滑过按钮5.1.1设计炮弹影片剪辑 炮弹影片剪辑是由火花、炮、燃烧球、魔术弹和圆等元件共同组成的。首先制作出一个橙色的“火花”元件,运行“Ctrl+F8”命令,创建一个新的影片剪辑“火花”,在该组件中绘制出一个30×30的图形,实例名称为“hh”。进入该火花元件中,延长帧数使其显示时间加长,接着将该元件的后一帧转换为空白关键帧,并在第一帧中加入“stop”动作代码完成火花组件。并将制作好的火花组件转换为新的影片剪辑,然后在该舞台中编辑火花的动态效果。如图编辑火花动画5.1所示。图5.1编辑火花动画接着使用快捷键创建一个新的实例名为“hh”的“炮”影片剪辑元件,在舞台中绘制出一个鞭炮放到中心位置;接着绘制一个燃烧球的图形,编辑出球燃烧的动画并将其转化为影片剪辑“燃烧球”;还要设计出一个黄色的魔术弹图形将其转换为影片剪辑;进入魔术弹中,将其魔术弹的图形再次转化为一个动态的球体,然后进入影片剪辑“魔术球”中将第二帧,第三帧转换为关键帧,修改其中的图形颜色为绿色、紫色。如图5.2所示。图5.2编辑弹壳动画另外创建新的图层,绘制出一个透明的圆形,将其制作成圆,实例名为“yuan”,即圆制作完成。在炮弹的影片剪辑中的图层三的第二帧上放入圆并为其添加动作,应用了碰撞检测算法,使用if条件语句判断是否碰到场景中的炮弹,通过hitTest函数实现。原理为:决定两个圆是否发生碰撞的条件首先是判断两个元素被外部包围,然后检查两个圆的中心之间的距离是否小于两个圆的半径之和。如图5.3所示。图5.3碰撞算法流程图最后开始制作炮弹,新建一个影片剪辑元件,在刚开始的帧上添加停止动作,在下一帧位置上拖入“炮”的动态元件,接着拖入魔术弹并在其元件中加入动作,实现复制炮弹、确定炮弹发出的位置、使每个分身都发出小火星,并定义火星的加速下落。使用attachMovie函数复制炮弹,运用公式确定炮弹的发出位置,如下所示:最后,炮弹影片剪辑制作完成,并在元件库中修改影片剪辑炮“炮弹”的标识符为“projectile”。5.1.2设计身体影片剪辑制作身体影片剪辑元件并建立两个图层,图层一的首帧中放魔术球,将圆放置在第二层的同一位置中,然后将其实例名命名为“yuan”添加到下一个场景中,使所有鞭炮均可发生触碰,就跳转到第二帧,即爆炸,在这里也使用了碰撞算法,检测碰撞是否发生。最后将影片剪辑“身体”的标识符为“proo”。添加代码如下:5.1.3设计信息栏影片剪辑制作信息栏影片剪辑元件,将月亮元件拖曳到该场景中,制作楼台和显示框,并在舞台的底部的显示框中创建用于显示关数、得分、目标分数、总数的动态文本。如图5.4所示。图5.4信息栏5.1.4设计工具栏影片剪辑创建影片剪辑“工具栏”并建立三个图层,在其中一层上加入关键帧,将创建好的子弹分别拖入舞台,调整好位置且延长该层的帧数,在下一层上绘制出一个浅蓝色的圆形,进行复制。为该图形添加if嵌套语句来实现,当鞭炮种类大于1时且发射器没有发射,将跳转到该元件所在的第一帧上。如跳转流程图5.5所示。图5.5跳转流程图这样就完成了工具栏的制作,如工具栏图5.6所示。图5.6工具栏在图层一中创建动态文本,并在图层一的第一帧上添加动作,定义炮弹的种类为1,并为a炮弹、b炮弹、c炮弹和d炮弹设置动态文本,另外三帧添加同上述一样的动作。5.1.5制作弹弓弹弓主要由树枝和皮筋两部分。先在场景中设计出深褐色的垂直树枝,将其实例名命为“shz”,为该元件中添加弹弓动态移动的效果,并添加停止脚本。如树枝图5.7所示。图5.7树枝制作动态皮筋,首先将其转换为一个名为“fsh”的发射点,绘制一个尺寸为120×5的矩形并转换为一个影片剪辑元件“绳”,且添加动作脚本,实现在x和y轴上的缩放,通过上述方法制作好另一根绳,主要公式为:5.1.6制作弹夹绘制弹夹用于放置在皮筋上承载子弹的。制作弹壳、袋和袋抖动的动画,创建名为“danj”的影片剪辑,并在组件上创建一个椭圆,将涂层的显示帧扩展到适当位置,并在时间轴的首帧上添加停止动作脚本。剪辑元件转换成名为“dd”的袋组件,为该剪辑组件添加动作,将主时间轴中的帧转换为该元件的帧,将图形重命名为“袋动”。在影片组件中建立弹夹的动态画面,在“袋”中,为图层一中的第二帧添加动作,实现当子弹飞出的数量小于1时不予通关,出现失败界面。如图5.8所示。图5.8编辑弹夹在“袋”中建立一个新的图层,将主时间轴中图层二的帧改为空白帧,在首帧中绘制一个矩形透明度方框,添加动作,确定是否在拖动,然后根据状态调整其位置。在主时间轴上添加声音“s4”,在图层二的首帧上添加动作,用if语句实现当炮弹用完后,自动选择其余炮弹种类,并自动清除场景中发射过的炮弹。删除炮弹用消除算法,遍历消除列表调用消除函数,消除炮弹后选择新的炮弹并再次调用遍历函数。如图5.9所示。图5.9条件语句流程图5.1.7制作子弹为了给玩家不一样的观感,总共制作4种子弹,每个子弹的样式和威力都不同。首先绘制元件“子弹A”,进入该组件为其添加停止动作,将下一个帧创建为空白帧“炸”,在该组件创建爆炸效果并添加动作。返回“子弹A”的舞台,将动作添加到该帧上,并设置关卡分数和目标总分数都加1,再为其添加代码,然后删除使用过的子弹。创建新的图层建立透明度为0的“区域”,在图层中绘制一个方框,参照“子弹A”,制作出其他分值、样式、大小不同的子弹。如图5.10所示。图5.10子弹5.1.8关卡制作本游戏共10关,先创建实例名为“xug”的影片剪辑“关1”,在舞台中使用不用的子弹设计出多种地图,如鞭炮地图5.11所示:图5.11鞭炮地图如果要制作其他关卡,参照第一关。为了增加难度可以设计一些障碍物,比如制作砖块,将其放置于舞台上添加停止动作以增添关卡难度。建立新图层,在该图层的第二帧上建立一个空白帧。将影片组件“区域”拖动到主时间轴中,并在砖块的左侧重新定位并调整其大小。如绿砖图5.12所示。图5.12绿砖添加动作语言,使火花触碰到砖块时就立即消失,反之炮弹没有消失;如果是火炮跳转到第二帧即发生爆炸。其中采用了碰撞算法中的矩形算法,主要适用于规则图形和精确度不高的碰撞游戏中。具体数学表达式为:参照上述砖块的制作方法,绘制出不同形状、颜色、功能的新砖块,然后将其放置到合适的关卡中。如图5.13所示。图5.13关卡85.1.9过关和失败影片剪辑制作绘制顺利过关的元件,制作实例名为“gg”元件“过”,通过动作脚本添加界面从出现到消失的动效,如图5.14所示。图5.14过关界面参照上述过关的元件,制作实例名为“shb”元件“败”,然后使用传统补间实现同样效果,如下图5.15所示。图5.15失败界面5.2主场景的制作与实现打开Flash软件,创建一个宽640像素、高480像素、帧频为30的文档,还可以在在属性面板中修改其他。创建主时间轴结构,主要包含背景、内容、发射台等时间轴。刚开始先建立黑框图层,接着建立“背景”和“内容”图层,最后建立发射台图层。在时间轴上可以添加动作语句,让游戏在设计上更活灵活现。能添加的动作语句,如表5.2所示。表5.2时间轴控制语句时间轴控制语句含义stop实例对象当前停止。play实例对象从当前位置开始播放。 gotoAndStop跳转到指定编号的帧停止播放。gotoAndPlay跳转到指定编号的帧开始播放nextFrame跳转到下一帧停止播放。preFrame跳转到下一帧开始播放。5.2.1背景时间轴第一步:在主时间轴上创建“主背景层”,添加背景图片,加入游戏名称、楼房、跳转按钮、说明画面、魔术球、爆炸等影片元件调整大小并设置在主界面的位置,通过添加动作让楼房动起来。第二步:在背景图层的第三帧添加蓝色背景图片,如背景图5.16所示。图5.16背景第三步:在背景图层的主时间轴上创建空白帧,在该帧中添加新的背景图片和元件并设置新背景,在窗口底部设置“信息栏”组件,为其添加语言代码,用_swapDepths定义实例层级。加入名为“gjl”的“工具栏”组件,并实现其动态交互,定义炮弹数量,以及该元件的层级。这些可以展现子弹数量、关卡数目、总分数、目标得分等,如游戏背景图5.17所示。图5.17游戏背景5.2.2内容时间轴第一步:在内容图层的帧中为其增加音乐,与游戏开始界面同步启动,将标签编辑为“yiny”并加入动作,使用自定义函数clean清除代码在上一步骤中所复制的元件,这里主要实现音乐的播放。在内容图层中选中“开始游戏”按钮,为其添加动作,实现当按下“开始游戏”按钮时,跳转到名为“gs1”的上。接着选中“游戏说明”按钮,为其添加动作实现当按下“游戏说明”按钮时,跳转到名为“suom”的上。第二步:在内容图层的第三帧中,创建一个关键帧为其设置一个帧标签,如内容时间轴图5.18所示。图5.18内容时间轴第三步:在内容图层的主要帧中创建空白帧并设置帧标签,添加动作,定义为第一关,a炮弹的数量为6,其余炮弹数为0,单关分数为0,目标分数为50。按照上述的制作方式,制作其余帧,帧标签为“gs2、gs3gs10”,分别为每个帧添加如上动作代码,改变炮弹数量、单关分数、目标分数,已达到不同关,又简到难的状态。并将影片剪辑“关卡1”等,依次放到对应的帧中,实例名为“xug”。添加如下代码:5.2.3发射台时间轴第一步:在发射台图层的中间帧中放入名为“shz”的影片剪辑“树枝”,接着放入名为“pjb”的影片剪辑“发射点”,注意元件的对齐点方式,添加动作,根据弹夹的位置,定义该元件的角度,放入影片剪辑“皮筋a”,调整其位置、层次,并添加代码,利用_xmouse函数设置鼠标跟随,运用Math.atan2函数,还用_rotation属性代表影片剪辑的旋转方向。运用了弧度和角度互换公式:第二步:在发射台图层的第十一帧中,放入影片剪辑“弹夹”,调整好弹夹的位置、层次,然后为其添加动作,根据鼠标的位置,计算弹弓的发射角度,发射后炮弹减1;定义炮弹的物理特性、定义弹弓重新加载的炮弹及加载魔术弹的拖尾;添加如下代码:第三步:在发射台图层的第十一帧中,放入影片剪辑“控制器A”和“控制器B”,调整好其放置在舞台外的位置,然后为其添加动作,判断确定子弹是否降落在砖块上。第四步:放入动态元件“过关”和“失败”。为“过关”添加代码,当界面中没有子弹且本关卡的分数大于目标分数时,显示过关画面,反之则失败。添加如下代码:最后完成游戏制作,并保存文件。

6.游戏测试6.1游戏测试的方法测试游戏的方法有很多种,如边界值法、场景判定法、等价类法、集成测试法错误推测等。一些人通常在设计过程中用集成测试法去测试游戏,而我主要运用的是场景法和边界值的方法对游戏进行测试。场景法是通过描述功能点或系统工作流来提高测试效果的方法,利用用功能点模仿特定场景的效果发生时间、发生的状态等,还能通过触发事件促使某些动作的发生,观察其最终结果,及时发现问题并解决。边界值法其实就是添加一个限制,可以通过其是否到达边界点,判断其是否完成。这个主要运用于闯关关卡的目标分数,用来调节关卡的难易程度。6.2游戏测试的过程运用Flash的自带功能,调试来进行软件测试,测试主要从场景切换,按钮触发模块,弹弓弹射,子弹飞行,子弹碰撞等方面进行。第一次测试,主要测试场景切换和按钮触发,打开游戏触发游戏说明界面按返回按钮发现并无响应,关闭测试影片,回到该场景中发现没有为其添加跳转代码,加入代码进行测试。按钮可以运行,切换的场景也正确,这一部分测试完毕。接着第二次测试,围绕弹弓弹射能否实现进行,打开调试,触发开始按钮进入游戏界面,用鼠标拖曳弹弓,可以运动,但是画面弹弓和子弹的位置不对,子弹位于弹弓的最上方,与现实状况不符,关闭测试影片,对这一部分界面进行位置调整。最后进行第三次调试,对子弹的抛物线轨迹、碰撞效果进行测试,打开游戏,进入关卡子弹能够顺畅飞行,碰到鞭炮后,能够爆炸及消失,画面运行流畅效果良好。继续操作,没有发现别的问题,能够顺利通关。6.3游戏测试的结果游戏的功能测试就是针对游戏中所有存在的不同功能点进行测试,这里主要从按钮转换场景,弹弓弹射,子弹飞行,子弹碰撞,子弹选择,碰撞效果,砖块销毁,特定音效,分数显示,子弹数量显示等开展详细的测试,如下表6.1所示为实际功能测试及结果。表6.1游戏功能测试功能点操作预测显示实际显示按钮转换场景点击每个场景转换到下一个场景的按钮成功跳转跳转到下一个场景弹弓弹射点击弹夹弹弓抖动流畅弹弓抖动流畅无卡顿子弹飞行点击弹夹完成抛物线轨迹抛物线轨迹顺畅子弹碰撞点击弹夹鞭炮炸毁鞭炮炸毁碰撞效果游戏运行时分数实时显示正常增长碰撞越多分数逐渐增长砖块销毁点击弹夹碰撞导致砖块销毁砖块销毁特定音效开始游戏音乐流畅播放流畅播放子弹选择点击子弹选中子弹选中子弹分数显示点击弹夹显示分数显示分数子弹数量显示点击子弹显示数量不显示数量通过边界值和场景判定法对游戏进行了调试,游戏能顺利运行,且没有卡顿情况,闯关游戏运行流畅,功能方面多数正常运行,只是在显示分数上存在问题,可能是动作脚本出现问题,值得重视,整体看来游戏的完成度还是很高的。总结和展望7.1游戏总结本文设计了一款基于Flash的闯关类游戏,在游戏设置了多个场景丰富了游戏的趣味性,为了增添游戏的趣味性,设置了一首轻快的背景音乐,还添加了鞭炮爆炸的音乐特效。游戏设置的主界面,游戏界面与场景达到色调,风格统一。整体场景通过二维动画来实现,运用简单而质朴的动画,可以给玩家带来类身临其境观感。场景总体分为三部分,第一部分是主界面因为点燃鞭炮只有在晚上才观赏到它燃放时所散发的光芒,所以游戏主界面背景的基调为深色系,为避免背景过于单调,还可以设计一些闪烁的星星、月亮等图案来增添一些亮丽的色彩,使整体效果更佳舒适。第二部分的场景是游戏说明界面,为了是玩家能够更清楚的看到规则,背景不添加任何元素,只显示规则,是玩家可以看得更清晰。第三部分场景是游戏界面,选用了比深色稍微亮一点的蓝色天空,有月亮、星星陪伴、有现代化都市、还设计了楼台,同时也添加了信息栏,主要用于显示分数,整体场景一应俱全。这款游戏运用鼠标进行控制,玩家通过熟练的操作并运用物理知识,完成目标任务。点击子弹进行拖拽,释放后点燃鞭炮,通过达到目标分数,完成当前关卡。本游戏共设计了10个关卡,每个关卡难易程度不同,越到后面越难。还设计了4种不同的子弹,威力也不同,达到不同的游戏体验感。游戏制作完成后,对游戏进行调试使得画面播放流畅、技能运行稳定,游戏整体未出现异常。7.2游戏展望对于游戏开发完毕以及测试的完结,该游戏可以进行一下几方面的拓展:(1)游戏目前地图设计过

温馨提示

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

评论

0/150

提交评论