Flash游戏制作揭密──飞行游戏的主机控制
IT商界
一次在网吧看到一个PLMM对一个Flash飞行游戏玩得正起劲,随口说了一句:“这游戏我也能编”。没想到一句话招来她的鄙视,以为我在吹牛。看来这种Flash游戏对许多人还是很有诱惑力呀,难怪现在喜欢Flash ActionScript编程的人这么多。许多人对Flash游戏的制作看得非常高深,其实制作一个Flash游戏并不是很难。我们就以飞行游戏为例,来看看制作一个Flash游戏到底有多难。
飞行游戏的构成
从制作方法来讲,飞行游戏的程序部分可以分为三部分,其一是绘制一架可控制的飞机,我们称之为主机,然后为它添加键盘控制程序;其二是制作子弹的发射系统和敌机的随机复制系统;其三就是制作子弹,以及主机与敌机之间的碰撞测试,还有计分系统(图1)。所以,我们的教学文章也分为三篇。大型的飞行游戏的制作,也基本上分为这三个大步骤,不同之处在于它的程序可能会更加复杂。本实例的地址为http://wsmmt.52flsah.net/flashgame.swf。
在本篇,我将教大家制作Flash的飞机游戏的主机控制方法。只作为抛砖引玉而用,希望能借此引起众位的兴趣,而复杂一些的Flash游戏,限于篇幅无法一一细述,只能靠读者在学习的过程中慢慢摸索了。
本期重点:在这个主机控制程序中,主要使用的是Aciton Script程序中的Key预定义对象,它的用法为Key.isDown(Key.xxx),xxx代表具体的按键。因为我们只是在捕捉按键,所以,需要使用OnEnterFrame事件。此事件在影片的播放过程中,每播放一帧就会执行一次,再配合if判断语句,就可以使影片不停地判断按键的状态,达到控制的效果。
实战
素材准备
1.打开Flash MX,将影片的背景色设置为黑色,每秒播放12帧,影片的宽与高为550:400(图2)。
2.点击Insert|New Symbol新建一个Movie Clip影片剪辑,名称为plane。在影片剪辑中按照下图顺序(从左到右)绘制一个飞机模型(图3)(这些图片你可到:http://www.cpcw.com/image/28-b7.zip下载)。
爆炸效果的制作
3.然后新建一个图层,在图层第2帧绘制褐色的圆形渐变逐渐放大,然后新建五个图层,复制爆炸效果到这些图层,起始位置依次向后,使爆炸的过程可以依次出现(图4)。
4.在第1帧设置代码stop(),在最后一帧设置gotoandstop("gameover",1),这样做的目的是让影片剪辑在开始播放时停止在第1帧,当被某事件触发时,跳转到gameover场景的第1帧。
飞机飞行的过程
5.双击空白区域回到场景,在Instance Name输入框中输入影片剪辑的实例名称为plane。这样做是为了在添加代码时,影片剪辑有一个唯一的名称。
6.选中第1帧然后点击Window|Action命令,打开Action面板,输入如下代码:
_root.onEnterFrame=function(){
if (Key.isDown(Key.LEFT) && plane._x>4){
plane._x-=10
}
if(Key.isDown(Key.RIGHT) && plane._x<546){
plane._x+=10
}
if(Key.isDown(Key.UP) && plane._y>4){
plane._y-=10
}
if(Key.isDown(Key.DOWN) && plane._y<396){
plane._y+=10
}
}
注解:当影片开始播放时,每播放一帧执行一次;
当按键中的LEFT也就是向左键按下时,而且plane飞机影片剪辑的X坐标大于4时;
飞机的X坐标每次递减10个像素;
当按键中的RIGHT也就是向右键按下时,而且plane飞机影片剪辑的X坐标小于546时;
飞机的X坐标每次递增10个像素;
当按键中的UP也就是向上键按下时,而且plane飞机影片剪辑的Y坐标大于4时;
飞机的Y坐标每次递减10个像素;
当按键中的DOWN也就是向下键按下时,而且plane飞机影片剪辑的Y坐标小于396时;
飞机的Y坐标每次递增10个像素;
这样就完成了飞机的主体控制,使用键盘中的方向键就可以对主机的位置加以控制,是不是很有意思。呵呵。在下一讲中,我们将讲解子弹复制技术与敌机的复制技术,下期再见。



