羅 艷
成都東軟學院數(shù)字藝術(shù)系,四川成都 611844
基于Flash ActionScript 3.0的飛行射擊游戲制作
羅 艷
成都東軟學院數(shù)字藝術(shù)系,四川成都 611844
隨著Flash軟件的發(fā)展和強大的ActionScript 3.0面向?qū)ο笳Z言的推出,使用Flash制作游戲變得可行,本文以一款飛行射擊類游戲制作為目標,采用Flash工具進行場景與游戲角色的制作,基于ActionScript 3.0語言進行程序設(shè)計,并對開發(fā)中所遇到的問題進行分析并予以解決。
Flash;游戲;ActionScript 3.0
飛行射擊游戲是最早發(fā)展的游戲類型之一,最著名的該種游戲應(yīng)該是《雷電》,游戲玩家使用鍵盤來控制飛機戰(zhàn)斗,躲避敵人的攻擊,利用自己的武器消滅敵人,戰(zhàn)斗過程中能獲取一些武器或者防護工具,被敵人擊中會消耗生命值和能量值,最后出現(xiàn)大Boss,將其消滅后過關(guān),關(guān)卡最后顯示玩家成績和本關(guān)信息。
Flash是一種當今網(wǎng)絡(luò)上最流行的交互式矢量動畫制作工具,具有出色的圖形處理能力和豐富的畫面表現(xiàn)力,優(yōu)秀的交互性能又使它成為游戲制作的重要工具之一。用Flash制作的動畫及游戲,具有矢量圖形體積小,流媒體下載的特點使其更容易在網(wǎng)絡(luò)上傳播和應(yīng)用,網(wǎng)頁游戲逐漸成為近年來的流行,Adobe公司的Flash Player憑借其全球97%的桌面電腦占有率和跨平臺的優(yōu)勢,成為了事實上的下一代的RIA(Rich Internet Application,富互聯(lián)網(wǎng)應(yīng)用程序)的主力。
ActionScript是Flash產(chǎn)品平臺的腳本解釋語言,它為Flash應(yīng)用程序提供了強大的交互性和數(shù)據(jù)處理能力。該語言可以實現(xiàn)Flash中內(nèi)容與內(nèi)容,內(nèi)容與用戶之間的交互。ActionScript的解釋工作由Action Virtual Machine(AVM)來解釋,AVM是Flash Player播放器中的一部分。ActionScript語句要想起作用是要通過Flash創(chuàng)作工具或Flex服務(wù)器將其編譯生成二進制代碼格式方可,而編譯過的二進制代碼格式將嵌入SWF文件,被Flash播放器執(zhí)行。
早期的ActionScript語言主要用來控制幀的跳轉(zhuǎn)和鼠標、鍵盤交互,ActionScript的版本已經(jīng)從1.0發(fā)展到至今的3.0,強大的ActionScript 3和支持ActionScript 3的新一代虛擬機AVM2,執(zhí)行速度是之前版本ActionScript語言的10倍,并且ActionScript 3是一門面向?qū)ο蟮?、具有業(yè)界標準素質(zhì)的編程語言。
玩家飛機使用鍵盤的“上”“下”“左”“右”鍵來控制飛機的移動,shift鍵發(fā)射子彈,Space鍵是轟炸,游戲分為若干個關(guān)卡,每一關(guān)都有不同的地圖,難度逐漸加大,敵人飛機先后出場,玩家得在躲避敵人攻擊的同時選擇合理時機攻擊敵人,若有道具落下,則需要玩家接收,以增加自己的能量值,每個關(guān)卡最后會出現(xiàn)大Boss,努力將其消滅后過關(guān),過關(guān)后顯示本關(guān)信息及玩家得分等信息。若在戰(zhàn)斗過程中玩家飛機中彈,則會以不同類型的攻擊減少生命值或能量值,生命值減少為0的時候玩家被消滅,游戲結(jié)束,每個敵機有一定的分值,被消滅后玩家得積分會增加。
游戲界面設(shè)計和音效設(shè)計在很大程度上會影響游戲的效果,該游戲使用Flash本身的繪圖工具箱制作了眾多類型的敵方部隊,豐富的游戲背景,多款子彈類型,和一些如爆炸等動畫效果;戰(zhàn)場使用外部的圖像資源導入到Flash中直接使用,有城市、大海、陸地、森林等。在音效方面,為每一個游戲關(guān)卡都設(shè)計了獨特的背景音樂,不會給玩家?guī)碇貜偷母杏X,音效來自現(xiàn)成的游戲音效素材,如飛機飛行的聲音,爆炸聲,子彈發(fā)射的聲音等。部分效果如圖1所示。
圖1 部分角色及背景圖
該游戲有很多相關(guān)的角色,比如玩家、敵機、子彈、炮彈、Boss、道具等,這些對象有的是有共同點的,比如不同的敵機,不同的子彈等,可以根據(jù)這些共同點歸納出相應(yīng)的類,然后從這些類中派生出新的類,同時添加各自特有的屬性和方法,從而可以創(chuàng)建出各具特色的角色和武器。
除了角色的類抽象之外,在游戲中還應(yīng)該有很多通用的功能,比如鍵盤控制飛機的移動,子彈和飛機的碰撞檢測,生命和能量顯示條等,這些功能也封裝到一些專門的類中,集中管理。
在程序的框架中利用抽象出來的各種類之間相互交流和協(xié)作,完成了游戲的制作。
本文使用Flash圖形和動畫制作工具配合ActionScript 3.0語言,設(shè)計并制作了一寬簡單的飛行射擊游戲,中間遇到一些問題,比如動畫的制作怎么樣更加逼真好看,音效的選擇,程序的設(shè)計等,最終完成了一款效果不錯的飛行游戲。圖1中右邊為最終游戲效果圖。
[1]孫穎.Flash ActionScript 3殿堂之路.電子工業(yè)出版社,2007,9.
[2]喬珂.ActionScript3.0權(quán)威指南.電子工業(yè)出版社,2008,1.
[3]沈鈞,李慶.Flash CS3 ActionScript 3.0游戲開發(fā)基礎(chǔ)與范例.電子工業(yè)出版社,2008,4.
[4]張鵬.Flash CS4游戲開發(fā)教程.京華出版社,2010,6.
[5][美]Keith Peters著.蘇金國,荊濤,等譯.Flash ActionScript 3.0動畫高級教程.人民郵電出版社,2010,1.
TP31
A
1674-6708(2011)53-0169-02