您的当前位置:首页正文

Flash报告书(游戏模板)

来源:九壹网


Flash作业

姓名:潘俊杰

班级:工业设计+软件工程102

学号:1018160209

1、 作品名称

潜艇大战

2、 作品简介

本游戏通过鼠标点击将屏幕上由左至右移动的物体消除,游戏共分为10个级别,当游戏者每消除出一个物体是会得到一定的分数,游戏级别随着分数增加而提高,级别越高物体移动速度越快,当达到10级时游戏结束。

3、作品基本制作步骤

1)新建一Flash(ActionScript3.0)文档,命名为“潜艇大战”,将其舞台的大小设置成

1200*650像素。该界面即为我们游戏中的初始界面。 2)将该图层命名为背景层,在第一帧处插入空白关键帧并将该背景图片导入到舞台中,如图1所示。

图1

3)新建图层,命名为帮助,在第一帧处创建一个按钮命名为bt_2如图2,在第二帧处创建一个文本填写内容,并设置“start”和“back”分别命名为bt_4和bt_5两个按钮如图3所示:

图2

图3

4)创建新的图层命名为开始,在第一帧处插入关键帧,创建一个“开始”按钮,命名为bt_1。在第3帧处插入空白关键帧,导入视频。如图4所示:

图4

5)新建图层命名为游戏背景,在636帧处创建空白关键帧,插入背景图片并在637帧处插入关键帧如图5所示;

图5

下面我们制作游戏的结束画面。当我们赢得游戏时,会出现“victory”的文字提示信息。新建一影片剪辑对象,将其命名为“jieguo”,在第1帧处使用文本工具输入上述文字信息,并将其颜色设置为黄色,并将该文字转换为图形元件,在第10帧处插入关

键帧,使用任意变形工具将该图形元件进行放大,并在第1帧和第10帧之间创建传统补间,如图6所示:

图6

6)回到主场景中,新建一图层,命名为结果层,在其第367帧处插入关键帧,并将“jieguo”影片剪辑放置到舞台中央,如图7所示。

图6

7)新建一图层,命名为音乐层,在第366帧处插入关键帧,导入到舞台一段优美的背景音乐,并使用属性面板将其同步选项设为事件,如图7所示。

图7音乐属性设置

2.主要元件的制作  鼠标(潜艇)元件

本游戏中需要让潜艇击沉不断出现的敌舰,所以我们首先要创建用于鼠标作用的潜艇元件。

1)新建一影片剪辑元件,命名为“mouse”,并选择链接:为ActionScript导出(X)。在其类(C):文本框中输入类名mm,如图8所示:

图8

2)进入该元件的编辑模式,在图层1第1帧处插入关键帧,将潜艇图片导入到舞台,新建图层2在第一帧处插入鱼雷图片,在20帧处将其移到舞台中央并创建传统补间,在图层2第21帧处插入准星并将其放置在舞台中央,在图层1的21帧处插入关键帧,在第图层21帧,右键选择动作面板,在其中输入代码:stop();如图9所示:

图9鼠标元件的初始界面效果

此时用来代替鼠标的潜艇鱼雷元件就完成了。

 爆炸元件设计

爆炸元件实现当鼠标点击敌船时,该敌船会先变爆炸,当爆炸结束时,会出现断掉的船效果,其制作过程如下:

1)新建一影片剪辑,命名为“爆炸1”,在第1帧处导入一“图形元件,该图形元件中放置一“爆炸”图片,并将其宽度缩小至228,高度缩小至168,将该图形元件的alpha值设置为15%,如图10所示:

图10

2)在第10帧处插入关键帧,将“爆炸”图形元件的宽度设置为371.6高度设置为234,并将其alpha值设置为100。并在1-10帧处创建传统补间,如图11所示:

图11

3)在第25帧处插入关键帧将其alpha值设置为0%,在10-25帧处创建传统补间,并在25帧处设置动作:stop();如图11所示。

图11

4)新建一图层,将其放在上一步中创建的图层的下面,在第一帧处导入一“敌舰”图形元件,在该图形元件中放置一敌舰图片。并将该“敌舰”图形元件放置在之前所创建的爆炸元件之中,如图12所示:

图12

12)在第10帧处插入关键帧,将该图形元件的alpha值设置为12%,并在1-10帧处创建传统补间,如图13所示:

图13

13)在图层2的24处插入毁坏的战舰图片,并在10-45帧之间插入传统补间,,如图14所示:

图14

14)在第25帧处插入空白关键帧,并设置动作:stop();,如图15所示:

图15

 目标(敌舰)元件

1)新建一影片剪辑元件,命名为“target1”, 并选择链接:为ActionScript导出(X)。在其类(C):文本框中输入类名target1,如图16所示:

图16

2)进入该元件的编辑模式,在其第1帧处插入关键帧,将一敌舰图片导入到舞台中,如图17所示。

图17

3)在第6帧处插入空白关键帧,将该敌舰所对应的“爆炸”影片剪辑元件放置舞台,并在12帧处插入帧,如图18所示:

图18

4)新建一图层,在第6帧处插入空白关键帧。在在第6帧处插入关键帧,加载一音效,实现鼠标点击成功的音频效果,如图19所示:

图19

5)再新建一图层,在第1帧处选择动作面板,在其中输入代码:stop();先使该影片剪辑对象停止。在第6帧处插入空白关键帧,将其属性面板中的帧标签文本框中设置值为hit,表示该帧为鼠标点中的帧,将会播放击中的效果,如图20所示:

图20

7)在第12帧处插入空白关键帧,打开动作面板,在其中输入代码:stop();使该影片剪辑停止。

同样的方法制作影片剪辑target2,target3和target4,并分别为其选择链接:为ActionScript导出(X)。在其类(C):文本框中输入类名target2、target3和target4.

此时我们需要的相应元件就制作完毕了。下面就需要为该游戏添加脚本代码了。

3.添加动作脚本

1)回到主场景中,在开始图层第一帧设置动作 stop();

bt_1.addEventListener(MouseEvent.CLICK, startMovie); function startMovie(event:MouseEvent):void {

this.gotoAndPlay(3); }

该代码段首先将主场景停止,然后在控制按钮bt_1上增加单击监听事件。当我们单击该按钮时,主场景就跳至第3帧处播放。

2)在第帮助图层1帧处打开动作面板,在其中输入如下代码: stop();

bt_2.addEventListener(MouseEvent.CLICK, f1); function f1(e) {

this.gotoAndPlay(2); }

该代码段首先将主场景停止,然后在控制按钮bt_2上增加单击监听事件。当我们单击该按钮时,主场景就跳至第2帧处播放。 在2帧处设置动作,代码如下: stop();

bt_4.addEventListener(MouseEvent.CLICK, f2); function f2(e) {

this.gotoAndPlay(1); }

bt_5.addEventListener(MouseEvent.CLICK, f3); function f3(e) {

this.gotoAndPlay(3); }

该代码段首先将主场景停止,然后在控制按钮bt_4、bt_5上增加单击监听事件。当我们单击bt_4时返回第一帧,单击bt_5时调转到第3帧。

3)创建图层将其命名为代码层,在第一帧处设置动作,代码如下 Mouse.hide();

stage.addEventListener(MouseEvent.MOUSE_MOVE,sbhs) stage.addEventListener(MouseEvent.MOUSE_DOWN,axhs) var mouse=new mm(); this.addChild(mouse);

function sbhs(event:MouseEvent) { mouse.x = mouseX;

mouse.y = mouseY; event.updateAfterEvent(); }

mouse.mouseEnabled=false;

function axhs(event:MouseEvent) { mouse.gotoAndPlay(2); }

该段代码首先将源鼠标图像隐藏,在舞台中添加鼠标移动和鼠标按下的监听器。然后在运行该帧时,在场景中利用我们之前创建好的鼠标(巫师)元件创建一鼠标对象mouse,并将该对象添加到当前场景中显示。然后定义了鼠标的移动事件,在该事件中将鼠标的x坐标和y坐标定义与源鼠标坐标相同,并调用updateAfterEvent()函数在该事件执行完毕后更新舞台,实现鼠标的实时显示效果。然后将鼠标的mouseEnabled属性设置为flase.该语句实现自定义鼠标后鼠标事件的真正捕获。鼠标按下事件完成当按下鼠标元件时,进入鼠标元件的第2帧处播放。

3)在结果层的第636帧处插入空白关键帧,选择文本工具,首先使用静态文本在相应位置输入“时间:”、“分数:”和“级别:”并设置相应字体和文字颜色,如图21所示:

图21

4)将文本工具改成动态文本,依次在静态文本“时间:”、“分数:”和“级别:”旁边创建三个动态文本,并分别将其命名为“shijian”、“fenshu”和“jibie”,如图22所示:

图22

这三个动态文本框在程序中动态地记录程序运行时所消耗的时间、当前的分数以及当前所处的级别。

5)选中代码层,在其第636帧处插入空白关键帧,并选择动作面板,在其中输入如下代码:

stop();

var oldDate:Date = new Date(); var oldTime = oldDate.getTime(); var score=0; var level = 1; fenshu.text=\"0\"; var deep=1;

stage.addEventListener(Event.ENTER_FRAME,jr); function jr(hs:Event) { var newDate:Date = new Date(); var myTime = Math.floor((newDate.getTime() - oldTime) / 1000); if(level!=10) {shijian.text=myTime.toString(); var old_level = level; level = Math.floor(score/100); if (level != old_level) jibie.text=level.toString(); } if(level==10) gotoAndStop(4); if (randRange(0, 30 - level * 2) == 11) {

if((level!=10)) {var arr:Array = new Array(new target1(),new target2(),new target3(),new target4());

var number = randRange(0, 3); var target= arr[number]; addChildAt(target,deep); setChildIndex(mouse,deep+1) deep++; with (target) { y = randRange(50, 650); x = -target.width; scale = randRange(3, 5); scaleX = scale/16; scaleY = scale/16; } target.addEventListener(Event.ENTER_FRAME,jr1); function jr1(hs:Event) { target.x += 5; } target.addEventListener(MouseEvent.MOUSE_DOWN,ax); function ax(event:MouseEvent) {

score=score+10;

if(level!=10) fenshu.text=score.toString(); target.gotoAndStop(\"hit\"); } } } }

function randRange(minNum:Number, maxNum:Number):Number { return (Math.floor(Math.random() * (maxNum - minNum + 1)) + minNum); }

3、 作品命名

源文件:潜艇大战.fla 影片文件:潜艇大战.swf

因篇幅问题不能全部显示,请点此查看更多更全内容

Top