萬盛學電腦網

 萬盛學電腦網 >> 圖文處理 >> Flash教程 >> Flash AS3.0教你射擊類游戲的制作

Flash AS3.0教你射擊類游戲的制作

解析打飛機游戲的制作過程
(一)

演示:

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
copyright © 萬盛學電腦網 all rights reserved