您现在的位置: 万盛学电脑网 >> 软件知识 >> 图文处理 >> Flash教程 >> 正文

Flash AS3.0教你射击类游戏的制作

作者:佚名    责任编辑:admin    更新时间:2022-06-22

解析打飞机游戏的制作过程
(一)

演示:

Flash AS3.0教你射击类游戏的制作 三联



这款游戏可能大家都玩过。敌机在蓝天上来回飞行,左右箭头键控制火炮在草地上左右移动。按下空格键发射子弹,击中敌机后,敌机爆炸。得分:记录击中的敌机数。剩余子弹:记录子弹的数量。

游戏运行过程图:




全部文件及作用图:游戏文件



AirRaid.fla程序界面及元件


AirRaid.as文档类 程序的入口。控制整个程序的逻辑顺序,逻辑结构关系。


AAGun.as绑定库中的火炮的类控制火炮


AirPlane.as绑定库中的敌机的类控制飞机


Bullet.as绑定库中的子弹的类控制子弹




UI(界面)部分


AirRaid.fla文件结构



AirRaid.fla文件:是主文件,分为5个图层3帧,帧上有代码,绑定了文档类 AirRaid.as 。图:界面

元素


1、

背景

层:

绘制

的蓝天、草地、山峦。


2、成绩显示层:"得分:" 动态文本:实例名 showScore "剩余子弹:" 动态文本:实例名 showShots。


3、按钮及提示层:第1帧:开始按钮及说明,实例名:startButton。第3帧:重新开始按钮及结束提示,实例名 playAgainButton。


4、代码层:3帧每帧都有代码。


5、标签层:第1帧,标签名称:intro 第2帧,标签名称:play 第3帧,标签名称:gameover 。




代码层的每帧代码及解释:



第1帧代码:



importflash.events.MouseEvent;
stop();
startButton.addEventListener(MouseEvent.CLICK,clickStart);
functionclickStart(event:MouseEvent){
gotoAndStop("play");
}

解释:给startButton注册了鼠标点击事件,用clickStart方法来实现,点击startButton按钮就把影片转到第2帧上游戏的进行界面。




第2帧代码:



stop();
startAirRaid();

解释:调用文档类的startAirRaid方法,执行这个方法,就会生成敌机,火炮,接受用户的键盘操作事件来生成子弹等一系列操作。




第3帧代码:



playAgainButton.addEventListener(MouseEvent.CLICK,clickPlayAgain);
functionclickPlayAgain(event:MouseEvent){
gotoAndStop("play");
}

解释:给playAgainButton注册了鼠标点击事件,用clickPlayAgain方法实现,点击playAgainButton按钮跳转到第2帧。




AirRaid.fla文件与文档类的绑定:


绑定文档类:AirRaid.as 图:绑定文档类





最后打开库看看库中的元件 图:库元件




AAGun影片剪辑(炮)


AirPlane影片剪辑(飞机)


BasicButton按钮


Bullet影片剪辑(子弹)




说一下AirPlane影片剪辑 图:飞机剪辑




1-5帧每帧一个飞机图形。第6-9帧爆炸图形,有标签:explode 第10帧有代码。





第10帧代码:



parent.removeChild(this);
stop();

解释:parent 是父容器 this 是自身 removeChild 是移除。这句代码的意思是通知父容器把它从显示界面移除。就是说当子弹击中敌机,敌机播放爆炸

效果

。播放到第10帧时,就通知它的父容器把它从屏幕上移除。


1、首先打开Flash CS4 (CS3、CS4或CS5没什么大的区别)新建项目,按确定。打开项目面板。图:新建项目






2、 点击右边的第一个三角按钮(项目),在下拉菜单中选"新建项目"。在弹出新建项目面板项目名称:填入项目名称。在根文件夹:项中点击右边的浏览按钮,浏览 到准备存放项目的目录,按确定。在ActionScript版本:选ActionScript 3.0 。单击"创建项目"按钮,这样项目就建好了。图:项目面板






3、把AirRaid.fla文件复制到项目文件夹下(省去

制作

界面)。点击下面的"创建类"

图标

,在弹出的创建类面板类:的文本框中填入文件名:AirRaid 单击创建类按钮。这样类就创建好了并为我们写好了类的框架,我们可以在框架中添加我们的代码了。图:创建类





图:填入类名






图:类的框架


4、编写AirRaid.as类

AirRaid.as类:文档类AirRaid类是游戏的控制器,绑定AirRaid.fla 。负责生成界面上的飞机、火炮、子弹。显示得分,子弹的剩余数量。注册了键盘按下,释放侦听器,接收用户的键盘操作。注册了进入帧事件侦听器,进行碰撞检 测。定义一个飞机计时器,随机生成飞机。检测剩余子弹的数目,当子弹数为零时也就是主角死亡了,移除界面上的飞机,火炮,跳转到重玩按钮。
 

package {
import flash.display.MovieClip;;
import flash.display.SimpleButton;
import flash.events.KeyboardEvent;
import flash.utils.Timer;
import flash.events.TimerEvent;
import flash.text.TextField;
import flash.events.Event;

public class AirRaid extends MovieClip {
private var aagun:AAGun;//火炮
private var airplanes:Array;//飞机数组
private var bullets:Array;//子弹数组
public var leftArrow, rightArrow:Boolean;
private var nextPlane:Timer;//不定时生成飞机的计时器
private var shotsLeft:int;//得分文本
private var shotsHit:int;//子弹数文本

public function startAirRaid() {
// 初始化得分数和子弹数
shotsLeft = 20;
shotsHit = 0;
showGameScore();

// 生成炮加入到舞台上
aagun = new AAGun();
addChild(aagun);

// 生成飞机、子弹数组
airplanes = new Array();
bullets = new Array();

// 键盘按下、释放事件侦听器
stage.addEventListener(KeyboardEvent.KEY_DOWN,keyDownFunction);
stage.addEventListe