下载
加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 flash游戏制作报告

flash游戏制作报告.doc

flash游戏制作报告

从此以后我学会了堅強
2018-12-16 0人阅读 举报 0 0 暂无简介

简介:本文档为《flash游戏制作报告doc》,可适用于领域

flash游戏制作报告浙江财经学院东方学院图形与游戏设计课程论文期末作品:ShootBallons(打气球)学生姓名指导教师分院信息分院专业名称计算机科学与技术班级学号年月日引言在本学期的所有课程中我们非常荣幸的能够在“图形与游戏设计”这门专业选修课中利用FlashCS软件学习操作Flash软件不仅学会了简单的图形设计、实现图片的动态化而且对AS脚本语言有了深入的理解。在期末老师规定的要求和帮助下我们小组成功的独立的开发了计算机生涯中第一个Flash游戏作品:shootballoons(打气球)以下是整个游戏完整的设计与实现过程。游戏介绍游戏规则及使用方法介绍由于本次作品是小组成员第一次接触Flash游戏设计考虑到自身能力因素小组决定开发一个简单易实现为主的游戏。打气球游戏规则十分简单是一款鼠标点击屏幕中的气球在规定时间内将所有气球打完取得胜利的游戏。用户进入游戏后会看到“start”与“help”两个按钮选项点击“start”按钮直接开始游戏点击“help”按钮查看游戏帮助进入help界面点击“back”按钮返回主界面。游戏开始后屏幕上自动生成一定数量的气球(系统默认数量为)时间条进行滚动此时拖动鼠标对准屏幕上的气球进行射击当在规定时间内射击玩所有气球后“游戏胜利”若有剩余气球或是时间结束则“游戏失败”“胜利”与“失败”界面均有“restart”按钮重新开始游戏。游戏的分析与设计功能模块描述游戏在舞台上划分了两个图层分别为“元件层”与“背景层”在主时间轴上一共设置了五帧依次为“开始界面”帧、“游戏界面”帧、“游戏胜利”帧、“游戏失败”帧、“帮助界面”帧考虑到实现代码方便原则均未添上帧标签。“开始界面”帧中定义了“xunhuanCishu(循环次数)”参数该参数即可直接改变游戏中气球的个数定义了LX参数实现背景音乐的播放加入两个鼠标点击监听事件与函数“kaishi(开始)”、“bangzhu(帮助)”目的是为了实现实现按钮的链接。“游戏界面”帧中放入了游戏的主代码程序:在舞台的元件图层上加入“时间条”与“动态文本提示框”定义了游戏需要的参数。定义了“missCishu(丢失次数)”、“dazhongCishu(打中次数)”并且设为进行初始化为了实现游戏音效定义了“gun(枪声)”、“miss(丢失声)”、“pig(背景音乐)”、“win(胜利声音)”、“lose(失败声音)”。定义完参数后执行一个for循环使屏幕产生气球并随机定义了气球的大小和颜色。在舞台上添加一个事件监听器监听click事件当click事件发生的时候执行dianji(点击)函数点击函数的参数是et该参数是鼠标事件类型的变量。该函数实现了判断鼠标是否点到了屏幕上的气球如果点到则变量“dazhongCishu(打中次数)”加“动态文本提示框”提示打中加并且播放打中音乐如果丢失则“missCishu(丢失次数)”加“动态文本提示框”提示丢失加播放丢失音乐。函数同时还用if语句判断“打中次数”并且插入了监听。当打中次数大于气球总数时跳转到“游戏胜利”帧当丢失次数达到次时跳转到“游戏失败”帧。“游戏胜利”帧与“游戏失败”帧设计类似在舞台上插入静态提示文本和重新开始按钮在代码播放提示音乐同时加入监听对参数进行初始化再跳转到第二帧。“帮助界面”帧在舞台上添加帮助文本框与返回按钮代码中加入监听使返回按钮返回到第一帧。需要解决的关键技术问题代码跳转画面难题在游戏代码设写阶段时为了实现游戏界面的跳转小组人员进行了深入的研究在考虑是否使用外包绑定类的思想初始阶段由于小组的程序员对AS代码的不熟悉与缺乏经验采用了package的代码方式进行书写在舞台上只设置了一个帧并且用visible语句对元件进行可见控制但是在进度遇到了瓶颈导致程序无法实现“开始按钮”成功的运行程序包的语言的排序问题和逻辑的组织非常不适合此游戏的实现在参考老师“打方块”的课件后果断的进行拦腰将代码写在里面用监听语言实现帧的跳转但是小组游戏的进度大大受到影响。气球设计问题在游戏设计的程序员水平阶段只能设计出相同大小与颜色的气球但是为了考虑到游戏的观赏与娱乐性在参考了大量资料后整改代码引入了随机数的理念实现了气球的多样化。游戏音效插入声音元件的代码基础在在实现上的确有一定的难度但是我们更想反应的也是没有找到良好的解决方法问题是为了使游戏具有良好的音效和娱乐性小组成员在网上找了大量的素材并特意自己制作素材利用手机录制了多个声音作为元件但是flash的软件问题由于找到的素材的比特率不匹配均无法导入成功使游戏实现的效果与当初定制的标准大打折扣最后不得不下载闪吧中的素材导入。时间条与气球元件制作时间条元件设计与教学内容的制作方法相同利用引导层遮盖实现时间条设置为帧在帧插入代码使时间条结束后跳转到主时间轴第四帧。气球的元件设计中定义了“xchange”与“ychange”并用if语句来控制气球大小控制产生最后用补间动画实现气球的爆破。游戏的实现素材准备影片剪辑:LJ元件该元件插入在主舞台第一时间轴元件使用了两个图层米高梅狮子图案放在背景层第一层摆放人物设计当初是想让人物像米高梅狮子一样吼起来但是考虑到难度改成了双手拍桌子流泪的方案通过两帧之间动态实现。气球元件该元件是本游戏最复杂的一个元件首先插入了三个关键帧用于在游戏中插入代码实现气球大小的控制接着对图片进行打散分割旋球移位最后形成补间动画形成爆破过程在制作中进行多次的调试使之效果自然。时间条元件该元件与实例教程的制作方法相似创建三个图层引导遮盖时间条采用红色矩形框利用引导层遮盖实现时间条设置为帧在帧插入代码使时间条结束后跳转到主时间轴第四帧。按钮:游戏采用统一规格按钮制作过程与实例教程类似画出圆角矩形框后在“弹起”、“指针经过”、“按下”的帧中改变矩形颜色达到动态效果。元件分为两个图层另一图层添加文字为了产生不必要的错误与游戏稳定规格统一采用“宋体”格式。声音元件:在声音素材选择方面设计之初构想采用自己配音提高游戏娱乐性但是在无法导入flash库后对格式进行了转换但是转化提示无法对有损文件向无损文件进行转化最终放弃自己制作在闪吧中寻找素材一共导入了“gun(枪声)”、“miss(丢失声)”、“win(游戏胜利声)”、“lose(游戏失败声)”和“LX”“PIG”两个背景音乐在属性中定义了类并选择为AS导出。图片元件:本游戏共导入三张图片作为背景在“游戏界面”中没有插入背景因为发现插入背景后不利于气球的显示同时还会遮盖元件。在“失败界面”中没有添加背景因为发现写入的代码实现游戏中跳转帧后气球并未消失有意外动态效果所以决定采用。动态文本:游戏界面中插入了一个动态文本在代码中定义了显示打中与丢失次数。动画制作与程序分析在本文“功能模块描述”与“素材准备”中已经详细的解释了本游戏是如何制作元件与形成动态的下面将主要分析程序代码来最终完整的解析游戏的实现。第一帧:stop()varxunhuanCishu:int=定义循环次数实质在游戏气球个数varlx:LX=newLX()varsnd:SoundChannelsnd=lxplay()插入背景音乐StartgameaddEventListener("click",kaishi)functionkaishi(et:MouseEvent){gotoAndPlay()sndstop()}HelpaddEventListener("click",bangzhu)functionbangzhu(et:MouseEvent){gotoAndPlay()sndstop()插入两个鼠标点击监听实现帧跳转与停止背景音乐}第二帧:stop()varmissCishu:int=vardazhongCishu:int=vargun:GUN=newGUN()varmiss:MISS=newMISS()varpig:PIG=newPIG()varsnd:SoundChannelsnd=pigplay()varwin:WIN=newWIN()varlose:LOSE=newLOSE()参数定义、声音元件定义与创建for(vari:int=i<=xunhuanCishui){varxiaoqiu:BALL=newBALL()xiaoqiux=Mathrandom()*xiaoqiuy=Mathrandom()*xiaoqiuwidth=xiaoqiuheight=Mathrandom()*varcolorInfo:ColorTransform=xiaoqiutransformcolorTransformcolorInfocolor=xFFFFFF*Mathrandom()xiaoqiutransformcolorTransform=colorInfoaddChildAt(xiaoqiu,)}for循环实现个小球的产生并用Mathrandom、colorInfo:ColorTransform与实现小球的颜色与大小的随机产生。stageaddEventListener("click",dianji)functiondianji(et:MouseEvent){定义一个函数叫dianji函数的参数是et该参数是鼠标事件类型的变量。if(ettargetisBALL){ettarget表示该事件发生在谁身上,is表示判断前面的变量是否是后面的类型。if(ettargetenabled==true){ettargetenabled=falsedazhongCishu打中次数加missNumbertext="Hitthenumber:"dazhongCishu动态文本提示打击次数gunplay()播放打中的声音ettargetgotoAndPlay()removeChild(ettargetasBALL)删除被打中的球if(dazhongCishu>=){如果打中次数大于或等于表示赢了sndstop()stageremoveEventListener("click",dianji)gotoAndPlay()跳转到第帧}}}else{missCishumissNumbertext="Missnumber:"missCishu动态文本提示丢失次数missplay()if(missCishu>=){sndstop()关闭背景音乐stageremoveEventListener("click",dianji)停止事件监听器gotoAndPlay()跳转到第帧}}}第三帧:stop()restartaddEventListener("click",chongxin)winplay()functionchongxin(et:MouseEvent){xunhuanCishu=gotoAndPlay()插入监听点击按钮跳回到第二帧重新定义循环次数}第四帧:stop()loseplay()restartshuaddEventListener("click",chongxinshu)functionchongxinshu(et:MouseEvent){xunhuanCishu=dazhongCishugotoAndPlay()}插入监听点击按钮跳回到第二帧重新定义循环次数第五帧:stop()btbackaddEventListener("click",fanhui)functionfanhui(et:MouseEvent){gotoAndPlay()}插入监听点击按钮跳回到第一帧气球元件代码:第一帧:varxChange:int=Mathrandom()*var表示定义变量语句的开头。该语句的含义是:定义一个变量名字叫xChange该变量为整数类型该变量初始值为varyChange:int=Mathrandom()*第二帧:if(thisy>=thiswidth){if是条件语句当小括号里的条件是“真”的时候其后大括号里的程序将被执行否则跳过大括号里的程序yChange=*yChange}if(thisy<=thiswidth){yChange=*yChange}if(thisx>=thiswidth){if是条件语句当小括号里的条件是“真”的时候其后大括号里的程序将被执行否则跳过大括号里的程序xChange=*xChange}if(thisx<=thiswidth){xChange=*xChange}thisx=thisxxChangethisy=thisyyChange结束语本次游戏制作由两个人合作完成成员姚龙静负责素材收索加工、元件制作、文档设写等主要工作成员俞凯凯负责游戏框架设计、代码编写、元件加工合成、调试等主要工作两人分工明确合作愉快。游戏在实现的前提上追求个性化成员姚龙静主动为游戏提供自身素材。整个制作过程中尤其是代码编写中遇到种种困难但是经过主动学习与深入思考和探索终于一一解决。本学期是小组成员第一次制作Flash游戏在最后能够通过努力取得成果成员感到非常高兴同时希望能有一个理想的分数。

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/12

flash游戏制作报告

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利