欢迎来到天天文库
浏览记录
ID:11922323
大小:115.50 KB
页数:10页
时间:2018-07-14
《flash实验二flash角色设计的实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Flash角色设计的实现10电信2班陈秋玲120101003206实验目的:利用角色设计思想,设计战场生存记游戏中的主要角色:小兵、大炮和炮弹。实验环境:1)高档微机2)Windows操作系统中文版3)FlashCS3Professional中文版实验原理:从广义上说,所谓角色,就是游戏中的各种人物、怪物、武器、设备、环境等等,只要是具有一定外观的、集成了这个外观指代的对象的所有功能的独立模块,都可以称为是角色。在Flash里面,角色的设计其实非常的简单。MovieClip类已经为我们构建了一个角色所需的基本框架,只要在这个框架下设计某个角色的所有外观、特征、动画、特技、属性、函数以及事件
2、,就可以完成角色设计。换句话说,Flash角色的本质是一个高度专门化的影片剪辑,它对外提供角色接口,对内则实现这些接口。一般来说,设计角色遵循自上而下,由主体到细节的思路。即一开始确认你要做的是什么样的角色,它有哪些功能,将这个功能描述出来,具体的功能将被表示为属性、方法和事件的列表。然后根据这个功能表将这些功能在内部一一实现。实验内容:假设需要设计一个这样的游戏:虽然你是一个英雄,但是你在一个空旷的战场上被包围了,四周布满了大炮。你唯一的目标就是生存下来。大炮总是会往你所在的位置开炮,所以你得不停地跑!按方向键进行上下左右跑动。这里将游戏分为若干个角色。其中主要角色包括:1)小兵:它可以
3、在屏幕的范围内到处跑动,躲避炮弹的袭击。如果被炮弹打中游戏就结束了。2)大炮:它总是能够自动对准小兵所在的方向,然后随机地打出炮弹3)炮弹:被发射出来以后就沿着一条直线运动直到运动到屏幕范围之外,当碰到小兵的时候小兵将被打中而死去。这里大炮是否打中小兵,要使用冲突检测技术来实现。由于我们还没有讲解到这个技术,所以暂时先不考虑这个问题,我们把实验简化为小兵可以到处跑,大炮总是对准小兵,随机打出炮弹,但炮弹对小兵不起作用。也就是完成大炮、小兵、炮弹三个角色的主要功能即完成本实验。实验步骤1)新建Flash文档(ActionScript3.0),命名为hero.fla,设置文档的帧频率为50,大
4、小为550*400。2)导入声音:导入三个声音文件,它们分别是跑动的声音、爆炸的声音的开炮的声音。分别链接为RunningSound、BombSound、ShootSound输出。101)设计角色1、小兵角色设计确定这个角色的成员为:成员修饰符成员描述statusPublic角色当前所处的状态speedPublic角色跑动的速度radiusPrivate角色的半径directionPublic角色的方向。recprivate角色跑动的限定范围,矩形对象Boy(speed:Number=4,dir:int=0,rec:Rectangle=null)public构造函数stand()Publi
5、c站立不动dead()Public死去run(dir:int)Public向某个方向跑动setStatus(s:String)Public设置小兵的状态runOnce(e:Event)private跑动一次的处理heroevent事件小兵的状态发生改变的时候,会触发heroevent事件。设计这个角色的动画,将这个角色的动画展开如下图所示:将动画串在一个剪辑中。总共7帧,1~7帧内容与上图编号顺序对应。对齐这些素材,使得播放时是一个完整的动画效果。在这个剪辑的时间轴上新建图层,改名为label,设置第1帧的帧标签为stop,第2帧为run,第7帧为dead(先将它们设置为关键帧)。将lab
6、el图层的第6帧设置为关键帧,在其上设置帧跳转语句:gotoAndPlay(“run”);新建图层,改名为sound,在选中第二帧,在属性栏中设置其声音效果为“走路.wav”。在库中选中这个小兵剪辑,右键选择“链接”,设置其链接为“Boy”导出。10在工作目录中创建Boy.as类文件,并输入以下代码:package{importflash.display.MovieClip;importflash.geom.Rectangle;importflash.events.Event;publicclassBoyextendsMovieClip{publicvarstatus:String;pub
7、licvarspeed:Number;publicvardirection:int;privatevarradius:int;privatevarrec:Rectangle;publicfunctionBoy(speed:Number=4,dir:int=0,rec:Rectangle=null){stop();this.speed=speed;this.direction=dir;this.rec=rec==null?
此文档下载收益归作者所有