课程考查报告_第1页
课程考查报告_第2页
课程考查报告_第3页
课程考查报告_第4页
课程考查报告_第5页
已阅读5页,还剩12页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

南京晓庄学院数学与信息技术学院《网络游戏编程》课程考查报告《图片猎人》的设计与实现所在院(系):数学与信息技术学院学生姓名:仓迎春学 号: 10130527班 级:10软件工程指导老师:李 青完成时间:

目录1前言 前言1.1课题背景与意义Flash是一种交互式动画设计工具,用它可以将音乐,生效,动画以及富有新意的界面融合在一起,以制作出高品质的动态效果的媒体开发工具。并且把flash技术用在游戏设计上可以使其更加生动,并且便于上传、下载。使得游戏便于网上交流,并且他完美结合的新时代的一起是时尚元素;网络、互动、及时、音乐、动画等,是的图片猎人游戏更上一层楼。本次我利用flash制作一款提高记忆力的益智小游戏,该游戏能够训练玩家的瞬间记忆力,可以短时间内提高玩家的记忆力,满足玩家的娱乐欲望,同时也激发了他们的挑战性。1.2主要完成的工作及论文结构1.2.1本文的主要工作通过鼠标对图片的点击,翻开一张图片,然后再点击其他图片,如果两张图片相同,则永久翻开,不然两张图片就都会重新合上。在规定的时间内江所有的图片都翻开就可以取得胜利。1.2.2论文结构目录-课题-前言-系统开发的相关技术介绍-系统的分析和设计-系统功能的具体实现和测试-总结-参考文献-附录系统开发的相关技术介绍2.1系统体系结构模式的选择 图片猎人是一个典型的几句二维阵列地图的益智游戏。使用二维地图编码形式并基于这些编码设计算法就可。2.2AS3.02.2.1AS3的技术特性ActionScript3有两类特性:语言特性和FlashPlayerAPI特性。语言特性基本上是在ActionScript2之上构建的,但是还有一些性能和功能方面的改进,包括:许多运行时异常,用来改进常见的错误处理和调试。这些运行时异常会显示堆栈跟踪,可以帮助开发人员轻松地找到错误的根源。以前的ActionScript版本会悄悄地掩盖错误,以避免在Flash中出现错误消息对话框。这在开发期间会造成困难,因为开发人员不了解可能出现的错误,就无法开发出好产品。在运行时存储类型细节,用来进行检查并保护系统,因此ActionScript3是强类型的。这还有助于减少内存使用量,因为类型信息以本机机器表示法表示变量。ActionScript3完全符合ECMAScript第四版规范,这可以简化XML解析。2.2.2AS3.0主要优点运行时排错:错误会在运行时派出一场,以帮助调试影片。运行时变量类型检测:在回放是会检测变量的类型是否合法。类封装:静态定义类增强性能。方法封装:方法与他们相关的类实力绑定,因此在方法中的“this”将不会改变。E4X:一个新的,更易于操作的xml。正规表达式:支持的本地化正规表达式。命名空间:不但在xml中支持命名空间而且在类的定义中也同样支持。Int和uint数据类型:新的数据变量类型允许AS3.0使用更快的整型数据来进行计算。新的显示列表模式:一个新的,自由度较大的管理屏幕上显示对象方法。新的事件类型模式:一个新的基于侦听器事件的模式。AS3.0完全面向对象,完全使用类。AS3.0可以在桢上写,可以在外部AS文件写。AS3.0事件全用侦听类。(三)系统分析和设计3.1系统分析图片猎人是一种老少皆宜的益智简单游戏。对于玩家自身没有什么比较高的要求。图片猎人是一个典型基于二维阵列地图的益智游戏。使用二维地图编码方式并基于这些编码设计。玩家通过自己对图片的瞬时记忆,翻开两张相同的图片,就可以完成一部分的游戏,在规定的时间内将所有的图片全部完成配对,就可以通过本关游戏,进入下一关。3.2系统设计设计图片角色图片角色负责实现显示哪张图片以及翻开和盖上图片的功能。它是一个高度集成的影片剪辑。2)倒计时进度条的设计倒计时进度条用来直观的显示剩余时间,这种将数据显示成直观效果。3)游戏主场界面设计(四)系统功能的具体实现与测试4.1系统功能的实现1)设计图片角色图片角色负责实现显示哪张图片以及翻开和盖上图片的功能。它是一个高度集成的影片剪辑。影片剪辑中需要包含所有的卡片,图片层中的每一帧都存储一张图片,由于游戏设计最大尺寸是6x6,所以一共有18张图片。盖子图层存放着一个开关门的动画剪辑,通过脚本可以控制开启或关闭,这样对应的图片就被翻开或者是盖上。盖子遮罩图层用来限制盖子的显示区域,是的这个区域正好与图片所在区域吻合。图片角色的属性和方法如图所示属性和方法说明Index:int图片的索引值Status:String图片当前的状态(open或者closed)Init(index:int)初始化图片openDoor()打开盖子closeDoor()关上盖子2)倒计时进度条的设计倒计时进度条用来直观的显示剩余时间,这种将数据显示成直观效果。底层遮罩中放一个影片剪辑,中心点与底色条的左端对其,大小正好盖着底色条。进度条会逐渐减少时间并且可以直观反映,直到时间结束时,可以调用住时间轴的timeout方法告知时间结束。游戏主场界面设计整个游戏布局在此步骤完成,首先在第一帧的位置添加游戏开始界面,然后再初始化游戏,在设计游戏中画面,是的游戏能够一层一层的继续下去。4.2系统功能测试图片角色设计完成后图片角色的时间轴如图所示:Action图层的代码:stop();varindex:int;varstatus:String;functionopenDoor(){ vars:SwapSound=newSwapSound(); s.play(); status="open"; door.gotoAndPlay("open");}functioncloseDoor(){ vars:SwapSound=newSwapSound(); s.play(); status="closed"; door.gotoAndPlay("close");}functioninit(i:int){ door.gotoAndStop(1); status="closed"; visible=false; index=i; gotoAndStop(int(index/2)+1);}进度条测试完成后倒计时进度条的时间轴如图所示:Action图层的代码:importflash.events.TimerEvent;importflash.utils.Timer;varmaxTime:Number;vartimeLeft:Number;vartimer:Timer;stop();functionstartCount(){ timeLeft=maxTime; if(maxTime<=0||isNaN(maxTime)){ return; } timer=newTimer(1000,maxTime); timer.start(); timer.addEventListener(TimerEvent.TIMER,onTimer); timer.addEventListener(TimerEvent.TIMER_COMPLETE,onTimerComplete);}functionstopCount(){ timer.stop();}functiononTimer(TimerEvent){ timeLeft--; m.scaleX=timeLeft/maxTime; }functiononTimerComplete(TimerEvent){ stopCount(); MovieClip(parent).timeOut();}游戏主场界面测试完成后图片角色的时间轴如图所示:Action图层的代码:stop();varindex:int;varstatus:String;functionopenDoor(){ vars:SwapSound=newSwapSound(); s.play(); status="open"; door.gotoAndPlay("open");}functioncloseDoor(){ vars:SwapSound=newSwapSound(); s.play(); status="closed"; door.gotoAndPlay("close");}functioninit(i:int){ door.gotoAndStop(1); status="closed"; visible=false; index=i; gotoAndStop(int(index/2)+1);}完成后的游戏时间轴如图所示其中第一帧为游戏开始的界面,第二帧为游戏初始化界面,第三帧为开始游戏中画面,第八帧为游戏过关界面,第九帧为游戏失败界面,第十帧为游戏通关界面。其中,第一帧审计有事开始界面,界面如图所示:第二帧开始游戏,只有一张背景图和一个显示倒计时的时间进度条。如图所示:而第8、9、10帧游戏结束状态,即游戏过关、游戏失败、游戏通关界面。其中第一关游戏界面,如图所示:第二关游戏界面如图所示:游戏失败界面如图所示:(五)总结此Flash小游戏是用flshaCS5.5软件,利用桢,层,场景等,还有利用AS3.0语言,通过制作各种影片剪辑,按钮,图形等原件,来实现的。通过完成这个游戏,我熟悉了ActionScript语言,了解了flash的基本制作,虽然遇到了一些困难,但是在得到预期结果后,感受到了完成游戏后的喜悦和快感。参考文献[1]JobeMarkar著.李鑫等译.ActionScript大型网页游戏开发北京:人民邮电出版社,2010.[2](美)GaryRosenzweig著.胡蓉等译.ActionScript3.0游戏编程(第2版)[M].北京:人民邮电出版社,2012.[3]肖刚著Flash游戏编程教程清华大学出版社,2009

附录:代码第一帧:游戏初始参数及图片角色的数组stop();bt_start.addEventListener(MouseEvent.CLICK,startGame);functionstartGame(evt:MouseEvent){ gotoAndPlay("init");}varstartx=35,starty=70;varlevel:int=1;//游戏的关卡,第1关2×2,第2关4×4,第3关6×6varbrickList:Array=newArray();varmatrix:Array;vargameTime:int=10;for(vari=0;i<36;i++){ varbrick:Brick=newBrick(); brick.init(int(i)); addChild(brick); brickList.push(brick);}functiontimeOut(){ gotoAndPlay("lose");}第二帧:初始游戏中国场景,布置图块分布init();functioninit(){ for(vari=0;i<36;i++){ brickList[i].init(i);//将所有方块都初始化 } varw:Number,h:int;//方块的宽度和高度 varlen:int=level*2; w=h=300/(level*2);//计算方块的大小 //建立舞台上的方块阵列 matrix=newArray(level*2); for(i=0;i<level*2;i++){ matrix[i]=newArray(level*2); } varl:int,r:int;//方块的所在行和所在列 for(i=0;i<len*len;i++){ //在方块阵列上随机选取一个空位 do{ l=int(Math.random()*level*2); r=int(Math.random()*level*2); }while(matrix[l][r]!=undefined); //将第i个方块放在这个位置。 matrix[l][r]=brickList[i]; //设置这个方块的各种属性 matrix[l][r].x=w*r+startx; matrix[l][r].y=h*l+starty; matrix[l][r].width=w; matrix[l][r].height=h; matrix[l][r].visible=true; } //游戏时间设置 timeBar.maxTime=gameTime; timeBar.startCount();}第三帧:处理玩家的鼠标点击操作。stop();vargoCheck:Boolean;varfirstBrick:int,secondBrick:int;action();functionaction(){ vari,j; for(iinmatrix){ for(jinmatrix[i]){ matrix[i][j].addEventListener(MouseEvent.MOUSE_DOWN,clickBrick); } } goCheck=false;}functionclickBrick(evt:MouseEvent){ if(evt.currentTarget.status!="closed"){ return; } evt.currentTarget.openDoor(); if(goCheck==false){ firstBrick=evt.currentTarget.index; goCheck=true; return; } secondBrick=evt.currentTarget.index; unaction(); play();}functionunaction(){ vari,j; for(iinmatrix){ for(jinmatrix[i]){ matrix[i][j].removeEventListener(MouseEvent.MOUSE_DOWN,

温馨提示

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

评论

0/150

提交评论