Flash游戲制作--空戰(zhàn).doc_第1頁(yè)
Flash游戲制作--空戰(zhàn).doc_第2頁(yè)
Flash游戲制作--空戰(zhàn).doc_第3頁(yè)
Flash游戲制作--空戰(zhàn).doc_第4頁(yè)
Flash游戲制作--空戰(zhàn).doc_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

射擊類游戲一直是Flash游戲制作中的一個(gè)熱點(diǎn),大多數(shù)Flash射擊游戲都是都是縱版的,也就是游戲背景的前進(jìn)方向是垂直的,這樣的游戲已經(jīng)司空見(jiàn)慣了。所以這次我們來(lái)制作一個(gè)橫版的射擊游戲,游戲背景和飛機(jī)的運(yùn)動(dòng)方向都是水平的。(本例的源文件下載請(qǐng)點(diǎn)擊這里)游戲運(yùn)行后的主界面如圖1所示:圖1游戲說(shuō)明:此游戲玩家是以第一視角的模式來(lái)進(jìn)行的,所謂第一視角就是游戲的界面相當(dāng)于玩家的雙眼,通過(guò)這樣的形式,可以使游戲達(dá)到一種非常逼真的效果,仿佛您已經(jīng)置身于激烈的游戲之中了。游戲中玩家可以使用鼠標(biāo)控制屏幕中的瞄準(zhǔn)鏡,瞄準(zhǔn)并射擊從左邊隨機(jī)出現(xiàn)的敵機(jī),飛機(jī)會(huì)以各種路線在空中飛行以避開(kāi)你的射擊,如果敵機(jī)被射中后,就會(huì)從空中跌落下來(lái),相應(yīng)的玩家會(huì)得一分,在游戲規(guī)定的100秒內(nèi),盡量擊落更多的敵機(jī)。制作步驟:一:游戲中相應(yīng)元件的制作1既然是空戰(zhàn)游戲,自然少不了飛機(jī),所以首先來(lái)制作游戲中的敵機(jī)。在影片中新建一個(gè)Graphic元件,命名為gPlane,進(jìn)入元件的編輯狀態(tài)后,可以從外部導(dǎo)入一張飛機(jī)的圖片,然后將其分離,稍稍加工一下即可?;蛘呤褂肍lash提供的強(qiáng)大的繪圖工具自己繪制一架飛機(jī),如圖2所示:圖2有了飛機(jī),還需要一個(gè)飛行員飛機(jī)才可以工作,所以再建一個(gè)Graphic元件,命名為gMan,進(jìn)入元件編輯狀態(tài)后,使用橢圓繪圖工具繪制一個(gè)簡(jiǎn)單的人頭即可,如圖3所示:圖3接下來(lái)就需要將飛機(jī)和飛行員組合到一起了,因?yàn)橛螒蛑行枰褂肁ction動(dòng)作腳本對(duì)飛機(jī)進(jìn)行控制,所以需要將最終的組合體制作成Movie clip元件,所以再新建一個(gè)Movie clip元件,進(jìn)入元件的編輯狀態(tài)后,將元件gMan和Gplane分別拖到編輯區(qū),使用鼠標(biāo)調(diào)整其相對(duì)位置,如圖4所示:圖4這樣,一架逼真的戰(zhàn)斗機(jī)就制作完成了。2飛機(jī)飛行動(dòng)畫(huà)的制作:游戲中飛機(jī)是從游戲窗口左邊隨機(jī)出現(xiàn)的,但是飛機(jī)的飛行路線是事先確定好的,我們可以在制作過(guò)程中按照實(shí)際需要制作一些飛機(jī)沿一定路線飛行的Motion動(dòng)畫(huà),使用Guide Line引導(dǎo)線可以很方便的實(shí)現(xiàn),然后在游戲中分別調(diào)用即可,本游戲預(yù)先制作了三中不同的飛行路線,這里以其中一種舉例說(shuō)明,其它的制作方法完全類似。新建一個(gè)Movie clip元件,命名為mPlane1,進(jìn)入元件的編輯狀態(tài)后,在圖層layer1的上面插入一個(gè)引導(dǎo)層,在引導(dǎo)層上使用鉛筆工具隨意繪制一條曲線,然后將圖層延續(xù)到第120楨,如圖5所示:圖5然后將元件mPlane拖到圖層layer1的第1關(guān)鍵楨,放置到曲線的左邊的開(kāi)始端點(diǎn),飛機(jī)會(huì)自動(dòng)吸附到此端點(diǎn),接著在屬性面板中設(shè)置飛機(jī)的Instance name為airplane。在第120楨插入一個(gè)關(guān)鍵禎,同樣的將飛機(jī)拖到曲線的右邊的端點(diǎn),也會(huì)自動(dòng)吸附上去,最后,在第1禎到第120禎的任意禎上單擊鼠標(biāo)右鍵,選取Creat Motion Tween命令即可,這樣就創(chuàng)建了飛機(jī)從曲線的左端點(diǎn)沿曲線運(yùn)動(dòng)到右端點(diǎn)的運(yùn)動(dòng)效果。最后還需要添加一個(gè)圖層Action,用來(lái)設(shè)置Action動(dòng)作腳本,在第1楨添加如下as:var planeDepth=_root.pDepth;在最后一楨(120禎)添加如下as:_root.numPlane-;this.removeMovieClip();按照同樣的方法分別制作元件mPlane2和mPlane3,和mPlane1的唯一不同點(diǎn)就是引導(dǎo)層的曲線不一樣。3制作瞄準(zhǔn)鏡:游戲中玩家可以控制的唯一對(duì)象就是瞄準(zhǔn)鏡,可以用它瞄準(zhǔn)并射擊敵機(jī),新建一個(gè)Movie clip元件,命名為mPointer,在編輯區(qū)中使用橢圓工具繪制一個(gè)正圓,然后在正圓中繪制四條方向不同的直線即可,如圖6所示:圖64云彩的制作:既然是空戰(zhàn),天空中當(dāng)然少不了白云,并且適當(dāng)?shù)脑谟螒蛑屑尤氚自七@樣的對(duì)象,可以使游戲更生動(dòng)和逼真,游戲中的白云是使用Action動(dòng)作腳本隨機(jī)復(fù)制并進(jìn)行控制的,所以這里我們新建一個(gè)Movie clip元件,命名為mCloud,進(jìn)入元件編輯狀態(tài)后,使用鉛筆工具的Ink繪制模式,繪制一個(gè)彎曲的閉合區(qū)域,并將圖層延續(xù)到第5禎,如圖7所示:圖7接下來(lái)需要添加復(fù)制和控制白云的Action動(dòng)作腳本,新建一個(gè)圖層,分別在第1,3,5三禎插入三個(gè)關(guān)鍵禎,給第一禎添加如下AS:this._x = 575;this._y = 30+random(300);speed = 2+random(5);給第3禎添加如下AS:this._x -= speed;給第5禎添加如下AS:if (this._x-35) _root.numCloud-;this.removeMovieClip(); else gotoAndPlay (_currentframe-2);5.飛機(jī)被擊落的效果:游戲中飛機(jī)如果被擊落,如果簡(jiǎn)單的來(lái)做,只需要設(shè)置飛機(jī)消失即可,不過(guò)為了增強(qiáng)游戲的觀賞性,我們這里專門來(lái)設(shè)計(jì)以下飛機(jī)被擊落的效果,而且會(huì)帶有爆炸的聲音。新建一個(gè)Movie clip元件,命名為mDown,進(jìn)入元件的編輯狀態(tài)后,首先添加三個(gè)圖層分別為down,planedown和explord,在圖層explord的第一禎繪制一個(gè)如圖8所示的多角形,并填充上適當(dāng)?shù)念伾簣D8然后在第3禎插入一個(gè)關(guān)鍵禎,在屬性面板上設(shè)置此多角形的Alpha透明度值為15%,最后建立第1到第3禎的Motion運(yùn)動(dòng)過(guò)渡,這樣就實(shí)現(xiàn)了飛機(jī)被擊中的瞬間爆炸的效果。接下來(lái)制作飛機(jī)下落的效果。在圖層planedown的第2禎插入一個(gè)關(guān)鍵禎,將元件Mplane拖進(jìn)編輯區(qū),使用旋轉(zhuǎn)工具將飛機(jī)旋轉(zhuǎn)90度,使飛機(jī)頭沖下,然后在第10禎插入一個(gè)關(guān)鍵禎,將飛機(jī)向下移動(dòng)一段直線距離,并適當(dāng)降低飛機(jī)的Alpha透明度值,最后建立第2禎到第10禎的Motion運(yùn)動(dòng)過(guò)渡效果,這樣飛機(jī)被擊中后下落并消失的效果也有了。不過(guò)如果飛機(jī)在下落過(guò)程中, 能有冒煙的效果就更完美了。所以我們?cè)趫D層down的第4禎插入一個(gè)關(guān)鍵禎,然后使用橢圓工具繪制個(gè)豎直的扁橢圓,并填充上黑色,在第10禎插入關(guān)鍵禎,調(diào)整橢園的形狀并設(shè)置降低其透明度,同樣建立一個(gè)Motion運(yùn)動(dòng)過(guò)渡效果。然后插入一個(gè)圖層sound,用來(lái)設(shè)置飛機(jī)下落的聲音效果,從外部導(dǎo)入一個(gè)爆炸的音效,然后選中圖層sound,從屬性面板的sound下拉列表中選擇所導(dǎo)如的身影,最后將此層也延續(xù)到第10禎,時(shí)間線如圖9所示:圖9最后還要添加一些Action動(dòng)作腳本對(duì)其加以控制。新建一個(gè)圖層ACTION,在第1,2,和10禎分別插入一個(gè)關(guān)鍵禎,然后給第一禎添加如下AS:this._x = _root.expX;this._y = _root.expY;給第2禎添加如下AS:this._x=_root.expX;this._y=_root.expY;給第10禎添加如下As:this.removeMovieClip();6.制作記時(shí)器:游戲是有一定時(shí)間控制的,所以還需要添加一個(gè)記時(shí)器,使用動(dòng)態(tài)文本可以方便的實(shí)現(xiàn),新建一個(gè)Movie clip元件,命名為mTime,在元件編輯狀態(tài)下,使用文本工具繪制一個(gè)矩形文本框,然后在屬性面板中設(shè)置其為Dynamic動(dòng)態(tài)文本,這樣就可以用Action對(duì)其中的內(nèi)容加以控制了,設(shè)置其變量名為rTime,然后在文本框前面輸入提示信息,如圖10所示:圖10然后新建一個(gè)層,在第一禎添加如下AS:now = new Date();/新建一個(gè)Date對(duì)象startTime = now.getTime();/設(shè)置開(kāi)始時(shí)間為系統(tǒng)時(shí)間playTime = _root.playTime;rTime = playTime;在第三禎添加如下AS:now = new Date();currentTime = now.getTime();rTime = playTime-int(currentTime-startTime)/1000);if (!rTime) _root.gotoAndPlay(reStart);stop ();/顯示并控制記時(shí)器中的時(shí)間在第5禎添加如下AS:gotoAndPlay (_currentframe-2);到此為止,游戲中需要的元件大部分準(zhǔn)備好了,下面就可以開(kāi)始布置主場(chǎng)景了。二:布置主場(chǎng)景1首先將默認(rèn)圖層layer1重命名為background,使用矩形工具繪制一個(gè)和舞臺(tái)一樣大小的矩形,并填充上天藍(lán)色,將圖層延續(xù)到第50禎。2新建兩個(gè)圖層分別為start和gun,在start圖層上用來(lái)設(shè)置游戲的開(kāi)始界面,使用文本工具輸入游戲的名稱,并將瞄準(zhǔn)器放置到圖層gun 中,并在屬性面板中設(shè)置瞄準(zhǔn)器的Instance name為pointer,如圖11所示:圖113在圖層gun的第22禎插入關(guān)鍵禎,輸入游戲時(shí)間已到的消息,如圖12所示;圖124新建一個(gè)圖層命名為score&time,用來(lái)放置記分器和記時(shí)器,將記時(shí)器mTime放到舞臺(tái)下面靠右的位置,然后在下面靠左的位置繪制一個(gè)動(dòng)態(tài)文本框,設(shè)置其變量名為score,用來(lái)記錄游戲的得分,如圖13所示:圖13三:給游戲添加Action動(dòng)作腳本最后的游戲就是添加Action動(dòng)作腳本了。新建一個(gè)圖層,命名為ACTION,設(shè)置第2禎的禎標(biāo)簽為start, 設(shè)置第9禎的禎標(biāo)簽為dup, 設(shè)置第15禎的禎標(biāo)簽為gotoDup, 設(shè)置第22禎的禎標(biāo)簽為reStart.在第一禎添加如下AS:Mouse.hide();startDrag(/pointer, true);/游戲開(kāi)始前,首先隱藏鼠標(biāo),然后使瞄準(zhǔn)器變?yōu)榭赏蟿?dòng)狀態(tài)sShoot = new Sound();sShoot.attachSound(sShoot);/新建一個(gè)sound聲音對(duì)象,然后從外部導(dǎo)入射擊的音效Sshoot,使用attachsound方/法將此聲音綁定sExp = new Sound();sExp.attachSound(sExp);/新建一個(gè)sound聲音對(duì)象,然后從外部導(dǎo)入射擊的音效Sexp,使用attachsound方/法將此聲音綁定stop();在第2禎添加如下AS:score = 0;/設(shè)置初始得分為0playTime = 100;/設(shè)置游戲時(shí)間為100秒var expX;var expY;/定義兩變量,代表飛機(jī)的坐標(biāo)cDepth = 100;pDepth = 0;numPlane = 0;numCloud = 0;/定義變量,分別代表飛機(jī)和云的深度和數(shù)量_root.attachMovie(mP, pointer, 300);startDrag(/pointer, true);在第9禎添加如下AS:if (Math.random()0.2 & numCloud5) numCloud+;_root.attachMovie(mCloud, c+cDepth, cDepth);cDepth = (+cDepth)%100+100;/復(fù)制白云if (Math.random()0.3 & numPlane7) _root.attachMovie(mPlane+(1+random(3), P+pDepth, pDepth);numPlane+;with (eval(/p+pDepth) _x = -20-random(120);_y = 150+random(60);pDepth = (+pDepth)%100;/復(fù)制飛機(jī),并使用隨機(jī)函數(shù)設(shè)置飛機(jī)出現(xiàn)的坐標(biāo)在第15禎添加如下AS:gotoAndPlay(Dup);/返回到禎Dup復(fù)制飛機(jī)在第22禎添加如下AS:_root.pointer.removeMovieClip();/游戲結(jié)束后,從游戲中刪除瞄準(zhǔn)器在第50禎添加如下A

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論