Flash游戏制作空战Word文档格式.docx
《Flash游戏制作空战Word文档格式.docx》由会员分享,可在线阅读,更多相关《Flash游戏制作空战Word文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
![Flash游戏制作空战Word文档格式.docx](https://file1.bdocx.com/fileroot1/2023-1/28/10360774-4804-4418-b903-e00906bdb33a/10360774-4804-4418-b903-e00906bdb33a1.gif)
接下来就需要将飞机和飞行员组合到一起了,因为游戏中需要使用Action动作脚本对飞机进行控制,所以需要将最终的组合体制作成Movieclip元件,所以再新建一个Movieclip元件,进入元件的编辑状态后,将元件gMan和Gplane分别拖到编辑区,使用鼠标调整其相对位置,如图4所示:
图4
这样,一架逼真的战斗机就制作完成了。
2.飞机飞行动画的制作:
游戏中飞机是从游戏窗口左边随机出现的,但是飞机的飞行路线是事先确定好的,我们可以在制作过程中按照实际需要制作一些飞机沿一定路线飞行的Motion动画,使用GuideLine引导线可以很方便的实现,然后在游戏中分别调用即可,本游戏预先制作了三中不同的飞行路线,这里以其中一种举例说明,其它的制作方法完全类似。
新建一个Movieclip元件,命名为mPlane1,进入元件的编辑状态后,在图层layer1的上面插入一个引导层,在引导层上使用铅笔工具随意绘制一条曲线,然后将图层延续到第120桢,如图5所示:
图5
然后将元件mPlane拖到图层layer1的第1关键桢,放置到曲线的左边的开始端点,飞机会自动吸附到此端点,接着在属性面板中设置飞机的Instancename为airplane。
在第120桢插入一个关键祯,同样的将飞机拖到曲线的右边的端点,也会自动吸附上去,最后,在第1祯到第120祯的任意祯上单击鼠标右键,选取CreatMotionTween命令即可,这样就创建了飞机从曲线的左端点沿曲线运动到右端点的运动效果。
最后还需要添加一个图层Action,用来设置Action动作脚本,在第1桢添加如下as:
varplaneDepth=_root.pDepth;
在最后一桢(120祯)添加如下as:
_root.numPlane--;
this.removeMovieClip();
按照同样的方法分别制作元件mPlane2和mPlane3,和mPlane1的唯一不同点就是引导层的曲线不一样。
3.制作瞄准镜:
游戏中玩家可以控制的唯一对象就是瞄准镜,可以用它瞄准并射击敌机,新建一个Movieclip元件,命名为mPointer,在编辑区中使用椭圆工具绘制一个正圆,然后在正圆中绘制四条方向不同的直线即可,如图6所示:
图6
4.云彩的制作:
既然是空战,天空中当然少不了白云,并且适当的在游戏中加入白云这样的对象,可以使游戏更生动和逼真,游戏中的白云是使用Action动作脚本随机复制并进行控制的,所以这里我们新建一个Movieclip元件,命名为mCloud,进入元件编辑状态后,使用铅笔工具的Ink绘制模式,绘制一个弯曲的闭合区域,并将图层延续到第5祯,如图7所示:
图7
接下来需要添加复制和控制白云的Action动作脚本,新建一个图层,分别在第1,3,5三祯插入三个关键祯,给第一祯添加如下AS:
this._x=575;
this._y=30+random(300);
speed=2+random(5);
给第3祯添加如下AS:
this._x-=speed;
给第5祯添加如下AS:
if(this._x<
-35){
_root.numCloud--;
}else{
gotoAndPlay(_currentframe-2);
}
5.飞机被击落的效果:
游戏中飞机如果被击落,如果简单的来做,只需要设置飞机消失即可,不过为了增强游戏的观赏性,我们这里专门来设计以下飞机被击落的效果,而且会带有爆炸的声音。
新建一个Movieclip元件,命名为mDown,进入元件的编辑状态后,首先添加三个图层分别为down,planedown和explord,在图层explord的第一祯绘制一个如图8所示的多角形,并填充上适当的颜色:
图8
然后在第3祯插入一个关键祯,在属性面板上设置此多角形的Alpha透明度值为15%,最后建立第1到第3祯的Motion运动过渡,这样就实现了飞机被击中的瞬间爆炸的效果。
接下来制作飞机下落的效果。
在图层planedown的第2祯插入一个关键祯,将元件Mplane拖进编辑区,使用旋转工具将飞机旋转90度,使飞机头冲下,然后在第10祯插入一个关键祯,将飞机向下移动一段直线距离,并适当降低飞机的Alpha透明度值,最后建立第2祯到第10祯的Motion运动过渡效果,这样飞机被击中后下落并消失的效果也有了。
不过如果飞机在下落过程中,能有冒烟的效果就更完美了。
所以我们在图层down的第4祯插入一个关键祯,然后使用椭圆工具绘制个竖直的扁椭圆,并填充上黑色,在第10祯插入关键祯,调整椭园的形状并设置降低其透明度,同样建立一个Motion运动过渡效果。
[上一页][下一页]
然后插入一个图层sound,用来设置飞机下落的声音效果,从外部导入一个爆炸的音效,然后选中图层sound,从属性面板的sound下拉列表中选择所导如的身影,最后将此层也延续到第10祯,时间线如图9所示:
图9
最后还要添加一些Action动作脚本对其加以控制。
新建一个图层ACTION,在第1,2,和10祯分别插入一个关键祯,然后给第一祯添加如下AS:
this._x=_root.expX;
this._y=_root.expY;
给第2祯添加如下AS:
this._x=_root.expX;
this._y=_root.expY;
给第10祯添加如下As:
6.制作记时器:
游戏是有一定时间控制的,所以还需要添加一个记时器,使用动态文本可以方便的实现,新建一个Movieclip元件,命名为mTime,在元件编辑状态下,使用文本工具绘制一个矩形文本框,然后在属性面板中设置其为Dynamic动态文本,这样就可以用Action对其中的内容加以控制了,设置其变量名为rTime,然后在文本框前面输入提示信息,如图10所示:
图10
然后新建一个层,在第一祯添加如下AS:
now=newDate();
//新建一个Date对象
startTime=now.getTime();
//设置开始时间为系统时间
playTime=_root.playTime;
rTime=playTime;
在第三祯添加如下AS:
currentTime=now.getTime();
rTime=playTime-int((currentTime-startTime)/1000);
if(!
rTime){
_root.gotoAndPlay("
reStart"
);
stop();
//显示并控制记时器中的时间
在第5祯添加如下AS:
到此为止,游戏中需要的元件大部分准备好了,下面就可以开始布置主场景了。
二:
布置主场景
1.首先将默认图层layer1重命名为background,使用矩形工具绘制一个和舞台一样大小的矩形,并填充上天蓝色,将图层延续到第50祯。
2.新建两个图层分别为start和gun,在start图层上用来设置游戏的开始界面,使用文本工具输入游戏的名称,并将瞄准器放置到图层gun中,并在属性面板中设置瞄准器的Instancename为pointer,如图11所示:
图11
3.在图层gun的第22祯插入关键祯,输入游戏时间已到的消息,如图12所示;
图12
4.新建一个图层命名为score&
time,用来放置记分器和记时器,将记时器mTime放到舞台下面靠右的位置,然后在下面靠左的位置绘制一个动态文本框,设置其变量名为score,用来记录游戏的得分,如图13所示:
图13
三:
给游戏添加Action动作脚本
最后的游戏就是添加Action动作脚本了。
新建一个图层,命名为ACTION,设置第2祯的祯标签为start,设置第9祯的祯标签为dup,设置第15祯的祯标签为gotoDup,设置第22祯的祯标签为reStart.
在第一祯添加如下AS:
Mouse.hide();
startDrag("
/pointer"
true);
//游戏开始前,首先隐藏鼠标,然后使瞄准器变为可拖动状态
sShoot=newSound();
sShoot.attachSound("
sShoot"
//新建一个sound声音对象,然后从外部导入射击的音效Sshoot,使用attachsound方//法将此声音绑定
sExp=newSound();
sExp.attachSound("
sExp"
////新建一个sound声音对象,然后从外部导入射击的音效Sexp,使用attachsound方//法将此声音绑定
stop();
在第2祯添加如下AS:
score=0;
//设置初始得分为0
playTime=100;
//设置游戏时间为100秒
varexpX;
varexpY;
//定义两变量,代表飞机的坐标
cDepth=100;
pDepth=0;
numPlane=0;
numCloud=0;
//定义变量,分别代表飞机和云的深度和数量
_root.attachMovie("
mP"
"
pointer"
300);
在第9祯添加如下AS:
if(Math.random()<
0.2&
&
numCloud<
5){
numCloud++;
mCloud"
c"
+cDepth,cDepth);
cDepth=(++cDepth)%100+100;
//复制白云
0.3&
numPlane<
7){
mPlane"
+(1+random(3)),"
P"
+pDepth,pDepth);
numPlane++;
with(eval("
/p"
+pDepth)){
_x=-20-random(120);
_y=150+random(60);
pDepth=(++pDepth)%100;
//复制飞机,并使用随机函数设置飞机出现的坐标
在第15祯添加如下AS:
gotoAndPlay("
Dup"
//返回到祯Dup复制飞机
在第22祯添加如下AS:
_root.pointer.removeMovieClip();
//游戏结束后,从游戏中删除瞄准器
在第50祯添加如下AS:
Mouse.show();
//显示鼠标
for(i=0;
i<
100;
i++){
removeMovieClip("
/c"
+(100+i));
+i);
//删除游戏中所有复制出来的飞机和白云
最后的时间线如图14所示:
图14
到这里,一款精彩的空战射击游戏就制作完成了,您可以按照相似的制作方法,制作一款比较传统的纵版射击游戏。
此实例其实是设计空战类射击游戏的通用思路,其它飞行射击游戏其实是在此基础上扩展成的,所以还可以进一步丰富游戏的功能,加强游戏的可玩性。