欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    《Flash游戏编程》实训书.docx

    • 资源ID:6205845       资源大小:111.92KB        全文页数:22页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    《Flash游戏编程》实训书.docx

    Flash游戏编程实验(训|)指导书目录实训指导书编写说明1实训一二维数组的建立和使用2实训二弹球程序的实现5实训三打字游戏的实现8实训四角色设计11实训五扫雷游戏的实现14实训六战场生存记游戏的实现17实训七战场生存记游戏过关版的实现20实训指导书编写说明1 .课程名称应与教学计划一致,写课程全称。2 .开课学年填写阿拉伯数字,学期填写中文汉字,如2009-2010学年第二学期。3 .总学时和周学时填写时,均带单位,如54学时、3学时。4 .授课班级填写全称,如2008级计算机网络1、2班。5 .教研室名称填写全称:如计算机应用教研室、计算机技术教研室、公共基础课教研室。6 .实验(训)项目应与实验(训)日历和实验(训)大纲一致。7 .实验(训I)目的在填写时注意层次性,如了解,理解,掌握,运用。8 .实验(训)过程要注意步骤详略得当。操作部分不宜过于简略,应尽量详细。实训一二维数组的建立和使用一、实训目的1、理解和使用数组对象(Array);2、掌握数组对象的创建和多维数组的使用;3、掌握用数组解决简单的地图编码问题的方法;二、实训设备与环境WindOWS操作系统+Adobeflashcs4软件三、实训要求在FlashCS4中,使用AS3创建一个n行m列的数组cells,n和m可以任意指定。CeII数组将用来存储扫类游戏每个方块上是否有雷。0表示没有雷,1表示有雷。这个实验中,要求根据给定的n和m创建这个数组,并给这个数组随即地分配k个地雷(即有k个位置值为1,其余位置值为0)。四、实训步躲与要点1)打开FIaShCS4Professional,选择【文件】【新建】,或者按Ctrl+N,弹出新建文档对话框。选择“Flash文档(ACtiOnSeriPt3.0)”,按确定新建一个FIaSh文档。2)双击图层上的“图层1”文字,进入修改状态,将“图层1”改为“action”。此修改是为了以后使用方便,对本次实验结果没有影响。3)点击“action”图层的第1帧,按【F9】弹出动作面板,这个时候就可以编辑和输入ACtiOnSCriPt代码了。4)在动作面板中输入代码1。(代码清单附于实验文档最后,请自行完成代码编写部分,这里给出的代码仅为参考!)5)按CtrI+S保存文件,然后选择【控制】【测试影片工或者按Ctrl+Enter测试影片。直到达到预定的效果为止。6)继续编写代码,在原有代码的基础上,在CreatArea()函数定义之前添加代码2(仅部分完成),完成选做部分。代码1:varm:int,n:int;雷区有m行n列°vark:int;总共有k个地雷O(k<m*n)m=10;n=15;k=20;varCellszArray=CreatArea();trace("创建的二维数组为:");trace2DArray(cells);addBomb(k);给雷区添加k个地雷trace("添加地雷后的二维数组为:");trace2DArray(cells);functionCreatArea():Arrayvararr:Array=newArray(m);定义一维数组for(vari=0;i<m;i+)一维数组的每个元素为一个新的数组arri=newArray();创建一个空数组for(varj=0;j<11;j+)arri.push(0);/给数组添加新元组的一种方法,这里是在数组ce11si的末尾添加一个新元组,值为0returnarr;functiontrace2DArray(arr:Array)输出二维数组for(vari=0;i<arr.length;i+)trace(arri);)functionaddBomb(bombNumber:int)给雷区添加k个地雷if(bombNumber>m*n)return;)vari,j,k;while(bombNumber>0)k=int(Math,random()*m*n);i=int(kn);j=k%m;if(cellsij!=1)cellsij=l;bombNumber-;代码2vararounds:Array=CalAround(celIs);trace("每个位置周围的地雷数为:");trace2DArray(arounds);functioncalArouncl(arr):Array请补充完整)functionaround(i:int,j:int):int请补充完整五、注意事项1、不能看电影、听音乐、聊天、浏览网页;2、实训结果发送到教师邮箱;六、实训报告要求及成绩评定1、认真填写实训报告表中的各项内容。2、按照实际操作的顺序把实训的过程填写好。3、学生书写的语句可以不相同,但要求最后结果要能出来。实训成绩在符合要求的前提下,根据最后程序的完成质量与难度评定。实训二弹球程序的实现一、实训目的1、了解FIaSh中的坐标系统;2、理解帧延迟循环及其应用;3、掌握将简单的物理运动公式应用到FlaSh中的方法;4、运用影片剪辑嵌套技术将运动封装在剪辑中;二、实训设备与环境WindoWS操作系统+Adobeflashcs4软件三、实训要求在FIaShCS4中,创建一个小球,并设计让它模拟在重力条件下的弹跳运动。其中重力和阻尼系数可以任意设置。选做:让作品中出现100个这样的弹球。四、实训步骤与要点1)打开FiaShCS4Professional,选择【文件】【新建】,或者按Ctrl+N,弹出新建文档对话框。选择“Flash文档(ACtionSeriPt3.0)”,按确定新建一个FlaSh文档。1)设置文档尺寸为800X600,背景为黑色,帧频率为50。点击“确定”按钮。2)将图层1改名为“弹球”,然后在弹球图层绘制一个小球。选中小球,设置小球的宽高都为40,然后按F8,将其转化为元件,类型为影片剪辑,中心位置为几何中心。3)选中这个弹球,在属性面板中设置实例名称为ball。4)点击弹球图层第3帧,然后按F5插入非关键帧。这样ball对象在三帧内都有效。5)新建图层,改名为action。然后在其第1帧进行程序的初始化,输入代码1。6)点击action图层的第2帧,按F6插入关键帧,在这一帧放置被重复执行的关键代码。输入代码2。提示:当在拖动状态下,通过前后时刻的坐标计算当前的速度。当在非拖动状态下,则根据加速度修改速度、根据速度计算下一时刻坐标,根据坐标位置进行反弹、碰撞损失等计算,然后将坐标赋值给ball对象。7)点击action图层的第3帧,按F6插入关键帧,然后输入帧跳转语句:gotoAndPlay(2);这段代码让时间轴播放头跳回第2帧,于是形成典型的三帧循环。8)按CtrI+S保存文件,然后选择【控制】【测试影片工或者按Ctrl+Enter测试影片,直到达到原定效果。尝试修改各个运动参数,看有什么效果。9)继续编写代码,实现在屏幕上显示100个这样的弹球。(自行完成)代码1:varCIragging:BOOIean=false;状态参数,指明是否正在被拖动varg:NUnlber=0.1;重力参数varZUni:NUmber=0.998;空气阻尼系数varPZSS=O.1;碰撞损失参数varSPeedX=0;X方向的速度varSPeedy=0;y方向的速度varnewx=ball.x;当前时刻的坐标varnewy=ball.y;varOldX=newx;前一时刻的坐标varoldy=newy;varstagelIeight=600,StageWidth=800;屏幕的尺寸varradio=ball.Width/2;小圆的半径ball.addEventListener(MouseEvent.MOUSE_DOWN,dragBall);ball.addEventListener(MouseEvent.MOUSE_UP,dropBall);functiondragBal1(evt:MouseEvent)dragging=true;evt.target.StartDragO;)functiondropBal1(evt:MouseEvent)dragging=false;evt.target.StopDragO;)代码2if(dragging)newx=ball,x;newy=ball,y;speedx=newx-oldx;speedy=newy-oldy;oldx=newx;oldy=newy;elsespeedy=(speedy+g)*(zuni);speedx=speedx*(zuni);newx=ball.x+speedx;newy=ball,y+speedy;if(newx<radionewx>stageWidth-radio)speedx=-speedx*(l-pzss);elseball,x=newx;)if(newy<radionewy>stageHeight-radio)speedy=-speedy*(l-pzss);elseball,y=newy;)五、注意事项1、不能看电影、听音乐、聊天、浏览网页;2、实训结果发送到教师邮箱;六、实训报告要求及成绩评定1、认真填写实训报告表中的各项内容。2、按照实际操作的顺序把实训的过程填写好。3、实训成绩在符合要求的前提下,根据最后程序的完成质量评定。实训三打字游戏的实现一、实训目的进一步掌握FIaSh中坐标系统的应用以及帧延迟循环的应用,在此基础上,运用人机交互的技术,实现一个美观实用的完整的FIaSh打字游戏。二、实训设备与环境WindoWS操作系统+Adobeflashcs4软件三、实训要求游戏开始之后,在屏幕下方不断出现上升的气球,每个气球上面都有一个字母,敲击键盘上对应的字母后,气球破裂。游戏时间为15分钟,游戏结束后要显示打字的速度和准确率。四、实训步骤与要点1)制作气球角色气球是一个类似弹球的角色,它内部时间轴的延迟循环实现了自动上漂以及爆炸后文字下落的运动效果,并提供一些对外函数,从而实现设置气球颜色、设置字母、爆炸等等视觉效果。属性和方法 inStage: Boolean idle: Boolean SetColor(col:uint) init(index:int) bomb ()气球角色对外的属性和方法如下:说明气球是否在舞台上(上漂)的标识符气球是否空闲的标识符设置气球的颜色初始化气球的各个状态气球爆炸blast(speedLevel:int)发射气球已经完成了气球角色的时间轴如下图所示:气球角色的时间轴它有三个可视对象:气球皮肤、气球外框和显示字母的动态文本框。其中气球皮肤用来设置气球的色彩以及爆炸的动画和声音效果,这里不再赘述。设置三个对象的实例名称分别为edge、skin、txt-charoaction图层的第1帧代码为:第2帧代码为:this,y+=speed;if(this,y<=-20)气球已经飘出舞台外MovieClip(parent).IoseBalloonO;this,y=420;init();)if(this.y>=440)打落的字符已经掉出舞台外。init();)第3帧的代码为:gotoAndPlay(2);在库中选中气球剪辑,点击右键选择“链接",钩选“为ActionScript导出”,设置其链接名字为Balloono2)游戏主场景设计已完成的游戏主场景时间轴入下图所示:ty三pB.5Xlaction口Soo-按钮,W背景p打字游戏的主时间轴其中背景为一张静态的图片。按钮图层放置着游戏各个阶段所需的可视对象。第一帧的作用是显示游戏名字、说明并等待开始。设置“开始”按钮的实例名称为:bt_starto第2帧而作用是提供游戏中的几个参数设置。三个组合框组件分别用来设置游戏速度等级、游戏时间和同时在舞台上的气球的最大数量。在参数栏中设置它们的数据项(DataProvider)o设置三个组合框的实例名称分别为:CnIb_speed、CnIb-time、cmb_maxCount,设置“OK”按钮的实例名称为bt.OKo第3帧为游戏中界面,在背索的基础上增加了游戏成绩的动态显示。它们为多个动态文本框,如下图所示:游戏中成绩的动态显示设置三个动态文本框的实例名称分别为:txt_count、txt_percent、txt-timeLefto4帧为游戏结束后的成绩显示。设置两个动态文本框的实例名称分别为:txt_typeSpeed.txt_finalIyPercent,设置“重玩”按钮的实例名称为:bt-restarto3)程序编程主时间轴的所有代码都在action图层上,其中第1帧的代码设置了游戏的初始参数,以及创建26个字母键所对应的气球数组,并响应玩家点击“开始”按钮的操作。第2帧的代码的作用是当玩家点击“0K”按钮之后,根据玩家的参数设置,初始化游戏中的各个变量并进入游戏中。第3帧的代码用来实现游戏的程序逻辑。基本过程就是侦听玩家敲击键盘的事件,并根据按键、舞台上的气球情况等判断得分还是失分,这通过OnPreSSKey函数实现。随机发射气球的函数也比较重要,它控制着上漂气球的数量,通过blast函数实现。第4帧的代码的代码用来显示最后的成绩并等待玩家点击“重玩”按钮的操作。4)测试程序,直到达到原定的效果为止。五、注意事项3、不能看电影、听音乐、聊天、浏览网页;4、实训结果发送到教师邮箱;六、实训报告要求及成绩评定4、认真填写实训报告表中的各项内容。5、按照实际操作的顺序把实训的过程填写好。6、实训成绩在符合要求的前提下,根据最后程序的完成质量评定。实训四FIaSh角色设计的实现一、实训目的理解角色设计思想,设计战场生存记游戏中的主要角色:英雄、大炮和炮弹并熟练使用。二、实训设备与环境WindOWS操作系统+Adobeflashcs4软件三、实训要求设计游戏:一个英雄在一个空旷的战场上被包围了,四周布满了大炮。大炮总是会往英雄所在的位置开炮,按方向键进行上下左右跑动。这里将游戏分为若干个角色。其中主要角色包括:1)英雄:它可以在屏幕的范围内到处跑动,躲避炮弹的袭击。如果被炮弹打中游戏就结束了。2)大炮:它总是能够自动对准英雄所在的方向,然后随机地打出炮弹。3)炮弹:被发射出来以后就沿着一条直线运动直到运动到屏幕范围之外,当碰到英雄的时候英雄将被打中而死去。实验简化为英雄可以到处跑,大炮总是对准英雄,随机打出炮弹,但炮弹对英雄不起作用。也就是完成大炮、英雄、炮弹三个角色的主要功能即完成本实验。四、实训步骤与要点1)2)新建Flash文档(ACtionSCriPt3.0),设置文档的帧频率为50,大小为490*540o导入声音:导入三个声音文件,它们分别是跑动的声音、爆炸的声音的开炮的声音O分别链接为RUnningSOUnd、BombSouncl、ShOOtSOUnd输出。3)设计英雄确定这个角色的成员为:成员statusrun (direct ion)stand ()dead ()设计这个角色的动画,;成员描述角色当前所处的状态 向指定的方向跑动站立不动死去将这个角色的动画展开如下图所示:1234将动画串在一个剪辑中。总共8帧,第1帧空白,28帧内容与上图编号顺序对应。对齐这些素材,使得播放时是一个完整的动画效果。在这个剪辑的时间轴上新建图层,改名为action,设置第2帧的帧标签为Stop,第3帧为run,第8帧为dead(先将它们设置为关键帧)。在第1、2、3、7、8帧处编写相关代码。于是完成了这个角色的设计,后面将把这个角色用于多个游戏中。测试这个角色的方法:将这个角色应用在游戏中。步骤如下:a)b)c)将做好的英雄剪辑从库中拖出置于舞台上。由于剪辑的第一帧是空白的,所以我们这个时候在舞台上看到的是一个空心的圆圈。选中这个剪辑实例,在属性栏中设置它的实例名称为hero。在主时间轴剪辑中新建图层,改名为action,然后在第一帧输入相应代码:保存文件,然后按Ctrl+Enter测试程序,看时候能够用键盘方向键控制这个角色的四处跑动。4)制作炮弹炮弹在被创建之后直线运动,这个我们已经能够轻松实现了。成员SetEnemy(enemy) SetSpeed (jiaodu,speed) moveBall () repeat ()炮弹角色应该包含如下的成员:成员描述给炮弹注册一个敌人设置炮弹发射的角度和速度以当前速度移动一次炮弹重复执行的代码,与enterFrame事件配合事实上,当炮弹被复制后设置它的位置、速度、注册敌人之后,其它所有操作都在repeat函数中自动完成,不需要添加更多的代码。已经做好的炮弹剪辑的时间轴如下图所示:炮弹 口炮弹剪辑的时间轴其中炮弹图层第1帧绘制一个大约5*5尺寸的小圆素材,表示炮弹,接着24帧为小圆爆破的一个小动画。在action图层第1帧中输入相应代码:第2帧设置帧标签为bomb,并输入以下代码:vars=newBombSound();s.play();这段代码指示当炮弹爆炸的时候播放爆炸的声音,其中BombSOUnd是爆炸音效的链接名称。到第4帧时炮弹已经爆炸完毕,应该删除这个炮弹。代码如下:StopO;KemoveEventListener(Event.ENTER_FRAME,repeat);parent.removeChild(this);完成炮弹的设计后,将其链接为BUIIet以备使用。5)设计大炮这里设计的大炮非常“聪明”,它总能知道英雄在哪里,并不时向英雄发出致命的炮弹。很明显,这又是通过延迟一段时间就重复执行一段代码来实现。由于炮管需要在运行时旋转,所以设计成一个独立的剪辑嵌套在大炮剪辑内。设计好的大炮如下图所示:大炮剪辑的可视对象炮管的原点即为大炮剪辑的原点,这样在程序中控制它的旋转就会比较方便。设置炮管的实例名称为paoguan。由于后面需要精确确定炮弹的初始位置,所以在炮管剪辑内又嵌着炮头剪辑,以便用它的坐标来确定炮弹的出口。炮头的实例名称设置为paotouo大炮剪辑只有一帧,在这一帧上输入相应的代码:这里德代码首先确定炮弹要瞄准的对象(enemy),然后重复执行一段代码。这段代码的作用是跟踪enemy的位置,让炮管瞄准enemy,并且按一定的随机几率发射炮弹。这里将enemy硬性设置为其父层级的hero实例。将大炮剪辑从库中拖出置于舞台上,可以多复制几个剪辑,排布于舞台的四周,保存文件,按CtriI+Enter测试程序,看是否达到原定的要求。五、注意事项5、不能看电影、听音乐、聊天、浏览网页;6、实训结果发送到教师邮箱;六、实训报告要求及成绩评定7、认真填写实训报告表中的各项内容。8、按照实际操作的顺序把实训的过程填写好。9、实训成绩在符合要求的前提下,根据最后程序的完成质量评定。实训五扫雷游戏的实现一、实训目的掌握二维编码方式编码地雷地图的方法,然后运用二维地图实现扫雷游戏的各个部分的算法,最终实现整个扫雷游戏。二、实训设备与环境WindoWS操作系统+Adobeflashcs4软件三、实训要求模拟实现类似于WindOWS自带的小游戏“扫雷可以手动地设置难度级别,或者可以直接设置地图的尺寸,和地雷的数量,然后开始游戏。四、实训步骤与要点D制作方块角色很明显,扫雷游戏中的每一个方格,都是一个雷区单元角色的实例。这个雷区单元应该包含如下的成员:成员 discovered haveMine haveFlag i、j 各个界面showMine() ShowExplode () showlnit () ShowAround(num) flag ()成员描述是否被打开了是否有地雷是否有旗帜雷区单元所在的位置如未打开、显示地雷、爆炸、显示周围雷数等界面显示地雷界面显示地雷爆炸界面显示初始化时的界面显示地雷被排除的界面显示/隐藏旗帜方块角色的每一帧的内容如下图所示:.4庭以12345678第一帧有相应的初始化代码第二帧为默认的状态,时间轴应该停止在这一帧。代码:StopO;至此我们已经完成这个角色的设计,在库中选中这个方块剪辑,点击右键,选择“链接”,将其链接为CeII输出。2)布置场景扫雷游戏只有一帧。时间轴如图所示:年自口Aiaction.|;T文本框U文字P背景 , UQ犯件口界面中有几个文本框,各文本框的实例名称分别为:txtLineCount、txtRowCountsIxtMineCounttxtMineLefto开始按钮的实例名称为:bt_start,预设下拉框的实例名称为:modeo设置预设下拉框内的相应数据选项。3)编写代码本游戏的所有代码都集中在第一帧上。其中各种变量都是程序中要使用到的,通过SetMode方法可以选择预设的游戏参数。通过StartGame进行游戏的初始化。StartGame是游戏的一个关键部分。其函数的定义如下:functionStartGame(e:MouseEvent)if(!init()returnfalse;)fillCells();平铺方块setMines()"/设置地雷activeCells();激活地图)自上而下,逐步细化程序,直到完成为止。完整的代码参考见附录。4)测试程序,直到达到要求为止。五、注意事项1)不能看电影、听音乐、聊天、浏览网页;2)实训结果发送到教师邮箱;六、实训报告要求及成绩评定1)认真填写实训报告表中的各项内容。2)按照实际操作的顺序把实训的过程填写好。3)实训成绩在符合要求的前提下,根据最后程序的完成质量评定。实训六战场生存记游戏的实现一、实训目的在实训四中设计的炮弹、大炮和英雄角色的基础上,运用冲突检测技术,并结合前面学习的知识,掌握设计一个完整的战场生存记游戏的方法。二、实训设备与环境WindOWS操作系统+Adobeflashcs4软件三、实训要求在角色设计实验的基础上,添加冲突检测技术,并完善整个游戏的逻辑,设计完成“战场生存记”游戏。游戏的描述为:英雄在一个空旷的战场上被包围了,四周布满了大炮。大炮总是会往你所在的位置开炮,所以英雄得不停地跑!按方向键进行上下左右跑动。四、实训步骤与要点1)修改炮弹角色将原来的炮弹角色的第一帧代码作相应修改,这些代码中,添加冲突检测以及相关的部分代码的修改。2)设计界面这个游戏的主时间轴只有4帧,完成后的时间轴如下图所示:游戏的时间轴第1帧是开始界面,包括游戏说明,“开始”按钮等。“开始”按钮的实例名称为bt-starto第2帧为游戏初始化画面,四周布满了刚才创建的坦克角色,屏幕左上方有一个显示时间的动态文本框,实例名称为timeCountShowo中间有一个英雄角色,由于英雄的第1帧是空的,所以这里显示为一个空心的小圆。设置英雄的实例名称为heroo第3帧的是游戏中画面,与第2帧完全相同。第4帧是游戏结束画面,其中两个动态文本框实例名称分别为timeCountShow和COnimentShOW,"重玩"按钮的实例名称为bt_restart°3)组织游戏程序在action图层的每一帧分别输入相应代码:第1帧代码完成初始变量设定以及定义后面要使用到的各个函数。大多数游戏都习惯于在第1帧定义各种函数,以备后面使用。第2帧设置它的帧标签为restart,这里调用初始化函数初始化游戏状态:init();第3帧是游戏中场景,由于都已经初始化完成,而且所有的游戏功能都已经封装在各个角色中了,所以这里只要让播放头停止即可。StopO;第4帧输入以下代码:StopO;清除游戏中的各个事件处理函数stage.KemoveEventListener(KeyboardEvent.KEY_D0WN,heroRun);stage.removeEventListener(KeyboardEvent.KEY_UP,hroStop);stage.KemoveEventListener(Event.ENTER_FRAME,checkGame);timeCountShow.text=String(time);varCommentzString;if(time<=40)comment="继续加油哦!";elseif(time<=120)comment="你很棒!w;elsecomment="你太厉害了!";)CommentShow.text=comment;bt_restart.addEventListener(MouseEvent.MOUSE_DOWN,StartGame);这一帧代码删除游戏中用到的各个事件,并显示游乐的结果。4)测试影片,直到达到满意的效果。程序说明:这个游戏程序最关键的是各个角色的设计。它应用了封装的概念,将角色相关功能都集成在这些角色内部,包括冲突检测,对于主时间轴来说,控制好游戏的流程即可。五、注意事项1)不能看电影、听音乐、聊天、浏览网页;2)实训结果发送到教师邮箱;六、实训报告要求及成绩评定1)认真填写实训报告表中的各项内容。2)按照实际操作的顺序把实训的过程填写好。3)实训成绩在符合要求的前提下,根据最后程序的完成质量评定。实训七战场生存记游戏过关版的实现一、实训目的在上一个实训的基础上,将“战场生存记”游戏改造成过关类游戏,以使学生掌握关卡类游戏的设计方法。二、实训设备与环境WindoWS操作系统+Adobeflashcs4软件三、实训要求设计适合关卡游戏的战场生存记游戏的基础框架以及各个物件,然后组织出几个关卡。基础框架沿用“战场生存记单人无关卡版AS3.fla,仅修改其中的游戏胜利失败条件即可(原来的游戏只有失败没有胜利,现在改为坚持超过tota11ime时间即为胜利)。游戏物件部分,大炮、炮弹等也一并沿用,仅多设计一个触雷,玩家角色一旦碰到触雷即游戏失败。另外还设计一个障碍物,玩家角色不能穿越障碍物所在位置,从而增加游戏的难度。四、实训步鞭与要点1)设计触雷角色触雷角色与炮弹角色非常相似,但更简单,因为它没有运动。这里仅给出其第1帧代码,角色的其余部分学生自行完成。stop();varenemy:MovieC1ip=MovieC1ip(parent.getChi1dByName(,'hero,);addEventListener(Event.ENTER_FRAME,repeat);functionrepeat(e:Event)if(enemy=null)return;)if(hitTestObject(enemy)碰到敌人了gotoAndPlay("bomb");自身爆炸enemy.dead();指示敌人死去)2)组织游戏程序这个游戏完成时的时间轴如下图所示:®a510152025303540IFactionZIevell曲M2助晓唾M00“按钮l00S文本楣00B角色.0LD0。背景B40o游戏的时间轴第1帧是游戏开始界面以及各个具体的函数。接下来是四个关卡,最后两帧分别是胜利/失败界面和全部过关界面。角色图层放置着英雄角色实例(hero)、大炮和地雷等等。这些实例都是从库中直接拖出来,在可视化环境下布置好即可,不需要添加任何代码。与战场生存记相比,程序多了几个变量,它们分别是level(当前关卡)、totalLevel(关卡总数)、totalTime(关卡时限)、victory(胜利/失败)。这些变量在初始化程序和判断游戏流程时使用到。计时方式改为倒计时,判断游戏成败的方式亦有所不同。总之,第1帧的代码,与前一个游戏不同的部分如下所示:varlevel:int=l;vartotalLevel=4;vartotalTime:int;varvictory:Boolean;functionStartGame(e:MouseEvent)gotoAndP1ay(,levelw+level);)functioninit()victory=false;time=totalTime;timeCountShow.text=String(time);IevelShow.text=String(level);startTime=newDate();hero,gotoAndStop(,stop,1);stage.addEventListener(KeyboardEvent.KEY_DOWN,heroRun);/跑动stage.addEventListener(KeyboardEvent.KEY_UP,heroStop);/取消跑动stage.addEventListener(Event.ENTER_FRAME,checkGame);/检查游戏是否结束)functioncheckGame(e:Event)showTime();if(hero,status=wdead,)play();游戏失败,播放到关卡结束帧)if(time<=O)hero,status=,victory,;victory=true;play();游戏胜利,播放到关卡结束帧)functionshowTime()endTime-newDateO;time=int(endTime.getTime()-StartTime.getTime()/1000);time=totalTime-time;/倒计时timeCountShow.text=String(time);在关卡的起始帧进行关卡初始化,由于关卡的大部分功能都由自动化的剪辑完成,所以这段代码非常少,例如第一关的初始化代码为:totalTime=15;init();stop();即游戏初始化后播放头停止,进入游戏中状态。关卡结束帧负责处理垃圾清理工作,这里仅清除三个事件处理函数,其它垃圾的清理交给垃圾回收机制处理。这是取巧的方法,如果你的关卡结束后程序出现异常,那么估计就是垃圾没有清理完全的缘故。stage.KemoveEventListener(KeyboardEvent.KEY_DOWN,heroRun);stage.KemoveEventListener(KeyboardEvent.KEY_UP,hroStop);stage.KemoveEventListener(Event.ENTER_FRAME,checkGame);gotoAndStop(,resultn);其它几个关卡的初始化和垃圾清理代码与此类似,不再赘述。成功/失败界面显示过关成功或者失败,并决定游戏的下一步走向。其代码如下:StopO;if(level>=totalLevel&&victory=true)gotoAndStop(winh);胜利画面elseif(victory)level+;txtResult.text="闯关成功";elsetxtResult.text="闯关失败";bt_continue.addEventListener(MouseEvent.MOUSE_DOWN,StartGame);)游戏结束画面较为简单,代码如下:StopO;Ievel=I;bt_restart.addEventListener(MouseEvent.MOUSE_DOWN,StartGame);它袤示如果点击重玩按钮,游戏将重新从第一关开始玩。3)测试游戏,直到达到预期的效果。五、注意事项六、实训报告要求及成绩评定4)认真填写实训报告表中的各项内容。5)按照实际操作的顺序把实训的过程填写好。6)实训成绩在符合要求的前提下,根据最后程序的完成质量评定。

    注意事项

    本文(《Flash游戏编程》实训书.docx)为本站会员(李司机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开