flash实验二Flash角色设计的实现.doc

上传人:自*** 文档编号:124913227 上传时间:2020-03-14 格式:DOC 页数:10 大小:115KB
返回 下载 相关 举报
flash实验二Flash角色设计的实现.doc_第1页
第1页 / 共10页
flash实验二Flash角色设计的实现.doc_第2页
第2页 / 共10页
flash实验二Flash角色设计的实现.doc_第3页
第3页 / 共10页
flash实验二Flash角色设计的实现.doc_第4页
第4页 / 共10页
flash实验二Flash角色设计的实现.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《flash实验二Flash角色设计的实现.doc》由会员分享,可在线阅读,更多相关《flash实验二Flash角色设计的实现.doc(10页珍藏版)》请在金锄头文库上搜索。

1、Flash角色设计的实现10电信2班陈秋玲120101003206实验目的:利用角色设计思想,设计战场生存记游戏中的主要角色:小兵、大炮和炮弹。实验环境:1) 高档微机2) Windows操作系统中文版3) Flash CS3 Professional中文版实验原理:从广义上说,所谓角色,就是游戏中的各种人物、怪物、武器、设备、环境等等,只要是具有一定外观的、集成了这个外观指代的对象的所有功能的独立模块,都可以称为是角色。在Flash里面,角色的设计其实非常的简单。MovieClip类已经为我们构建了一个角色所需的基本框架,只要在这个框架下设计某个角色的所有外观、特征、动画、特技、属性、函数以

2、及事件,就可以完成角色设计。换句话说,Flash角色的本质是一个高度专门化的影片剪辑,它对外提供角色接口,对内则实现这些接口。一般来说,设计角色遵循自上而下,由主体到细节的思路。即一开始确认你要做的是什么样的角色,它有哪些功能,将这个功能描述出来,具体的功能将被表示为属性、方法和事件的列表。然后根据这个功能表将这些功能在内部一一实现。实验内容:假设需要设计一个这样的游戏:虽然你是一个英雄,但是你在一个空旷的战场上被包围了,四周布满了大炮。你唯一的目标就是生存下来。大炮总是会往你所在的位置开炮,所以你得不停地跑!按方向键进行上下左右跑动。这里将游戏分为若干个角色。其中主要角色包括:1) 小兵:它

3、可以在屏幕的范围内到处跑动,躲避炮弹的袭击。如果被炮弹打中游戏就结束了。2) 大炮:它总是能够自动对准小兵所在的方向,然后随机地打出炮弹3) 炮弹:被发射出来以后就沿着一条直线运动直到运动到屏幕范围之外,当碰到小兵的时候小兵将被打中而死去。这里大炮是否打中小兵,要使用冲突检测技术来实现。由于我们还没有讲解到这个技术,所以暂时先不考虑这个问题,我们把实验简化为小兵可以到处跑,大炮总是对准小兵,随机打出炮弹,但炮弹对小兵不起作用。也就是完成大炮、小兵、炮弹三个角色的主要功能即完成本实验。实验步骤1) 新建Flash文档(ActionScript3.0),命名为hero.fla,设置文档的帧频率为5

4、0,大小为550*400。2) 导入声音:导入三个声音文件,它们分别是跑动的声音、爆炸的声音的开炮的声音。分别链接为RunningSound、 BombSound 、ShootSound输出。3) 设计角色1、小兵角色设计确定这个角色的成员为:成员修饰符成员描述statusPublic角色当前所处的状态speedPublic角色跑动的速度radiusPrivate角色的半径directionPublic角色的方向。recprivate角色跑动的限定范围,矩形对象Boy(speed:Number=4,dir:int=0,rec:Rectangle=null)public构造函数stand()Pu

5、blic站立不动dead()Public死去run(dir:int)Public向某个方向跑动setStatus(s:String)Public设置小兵的状态runOnce(e:Event)private跑动一次的处理heroevent事件小兵的状态发生改变的时候,会触发heroevent事件。设计这个角色的动画,将这个角色的动画展开如下图所示:将动画串在一个剪辑中。总共7帧, 17帧内容与上图编号顺序对应。对齐这些素材,使得播放时是一个完整的动画效果。在这个剪辑的时间轴上新建图层,改名为label,设置第1帧的帧标签为stop,第2帧为run,第7帧为dead(先将它们设置为关键帧)。将la

6、bel图层的第6帧设置为关键帧,在其上设置帧跳转语句:gotoAndPlay(“run”);新建图层,改名为sound,在选中第二帧,在属性栏中设置其声音效果为“走路.wav”。在库中选中这个小兵剪辑,右键选择“链接”,设置其链接为“Boy”导出。在工作目录中创建Boy.as类文件,并输入以下代码:packageimport flash.display.MovieClip;import flash.geom.Rectangle;import flash.events.Event;public class Boy extends MovieClippublic var status:String

7、;public var speed:Number;public var direction:int;private var radius:int;private var rec:Rectangle;public function Boy(speed:Number=4,dir:int=0,rec:Rectangle=null)stop();this.speed=speed;this.direction=dir;this.rec=rec=null?new Rectangle(0,0,550,400):rec;setStatus(init);radius=this.width/2;this.rota

8、tion=dir=0?0:(dir-1)*90;public function stand()gotoAndStop(stand);setStatus(stand);if(this.hasEventListener(Event.ENTER_FRAME)this.removeEventListener(Event.ENTER_FRAME,repeat);public function run(dir:int)this.direction=dir;this.rotation=dir=0?0:(dir-1)*90;this.addEventListener(Event.ENTER_FRAME,rep

9、eat);if(status!=running)gotoAndPlay(running);setStatus(running);private function repeat(e:Event)switch(direction)case 0:break;case 1:x+=speed;break;case 2:y+=speed;break;case 3:x-=speed;break;case 4:y-=speed;break;default:return;if(xrec.x+rec.width-radius)x=rec.x+rec.width-radius;if(yrec.y+rec.heigh

10、t-radius)y=rec.y+rec.height-radius;public function dead()gotoAndStop(dead);setStatus(dead);if(this.hasEventListener(Event.ENTER_FRAME)this.removeEventListener(Event.ENTER_FRAME,repeat);private function setStatus(s:String)this.status=s;var e:Event=new Event(heroevent);this.dispatchEvent(e);测试这个角色的方法:

11、在hero.fla文件,属性栏设置其文档基类为App,在工作目录中创建App.as并输入以下代码:package import flash.display.MovieClip;import flash.events.KeyboardEvent;import flash.ui.Keyboard;import flash.geom.Rectangle;public class App extends MovieClip private var hero:Boy;public function App() /创建小兵hero=new Boy(8,4,new Rectangle(0,0,550,400

12、);hero.x=100;hero.y=100;addChild(hero);/控制小兵stage.addEventListener(KeyboardEvent.KEY_DOWN,heroRun);/跑动stage.addEventListener(KeyboardEvent.KEY_UP,heroStop);/取消跑动 private function heroStop(e:KeyboardEvent) hero.stand();private function heroRun(e:KeyboardEvent) var direction:Number=0;/英雄跑动的方向。14分别表示东南

13、西北,0表示不动。if (e.keyCode=Keyboard.LEFT) direction=3;if (e.keyCode =Keyboard.UP) direction=4;if (e.keyCode =Keyboard.RIGHT) direction=1;if (e.keyCode =Keyboard.DOWN) direction=2;hero.run(direction);return;保存文件,然后按Ctrl+Enter测试程序,看时候能够用键盘方向键控制这个角色的四处跑动。2、制作炮弹炮弹角色应该包含如下的成员:成员修饰符成员描述statusPublic炮弹的状态speedPublic炮弹的速度speedxprivate炮弹的x方向速度speedyprivate炮弹的y方向速度radiusPublic炮弹的半径recprivate炮弹的有效范围enemyPublic炮弹的敌人jiaoduprivate炮弹的角度setEnemy(enemy)Public给炮弹注册一个敌人setSpeed (jiaodu,speed)Public设置炮弹发射的角度和速度moveBall()Privat

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 工业设计

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号