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

下載本文檔

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

文檔簡介

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

溫馨提示

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

評論

0/150

提交評論