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