如何製作Flash遊戲

來源:酷知科普網 3.06W

Flash是網頁瀏覽器上很流行的動畫格式,很多網站中都能見到這種格式的遊戲。儘管面對日益增長的移動應用程式,Flash格式不再那麼流行,但是很多好玩的遊戲仍是採用Flash格式。Flash使用的語言是ActionScript,用它可以控制螢幕上出現的物件,而且十分易學。閱讀本文,學習如何製作一個簡單的Flash遊戲。

開始製作

(01)設計遊戲。在編寫程式碼之前,你要對你的遊戲有個大概的設想。Flash適合製作一些比較簡單的遊戲,所以不要在遊戲中加入過多的傷腦筋的設計。先選擇一種遊戲的型別,並且構思幾種基本的設計,然後再開始製作。閱讀本文可以瞭解更多有關遊戲設計階段的內容。常見的Flash遊戲型別,包括:跑酷遊戲:遊戲中的人物一直在跑,而玩家需要控制人物跳過障礙物,或以其它方式躲過。玩家通常只有一兩種控制方式。橫軸格鬥遊戲:人物橫向移動,擊敗身邊的敵人才能繼續前進。這種遊戲中,通常有幾種不同的動作來擊敗敵人。解謎遊戲:這種遊戲需要讓玩家解出謎題,從而過關。謎題型別多種多樣,可以像《寶石迷陣》那種三消遊戲一樣簡單,也可以像是在冒險遊戲中出現的謎題一樣複雜。角色扮演遊戲:這類遊戲的核心在於角色的發展和提升,角色會在各種場景中遇到不同的敵人。儘管各個遊戲的戰鬥機制不完全相同,但是大多數還是回合制。角色扮演遊戲要比只有一個動作的遊戲要複雜得多。

如何製作Flash遊戲

(02)Flash擅長製作的遊戲。Flash最適合製作2D遊戲,儘管也可以製作3D遊戲,但是這要需要用到更高階的程式語言,並且對語言有著深入的瞭解。幾乎所有成功的Flash遊戲都是2D遊戲。Flash遊戲最適合小段時間玩。這是因為大多數Flash遊戲玩家都會在一小段空閒時間玩遊戲,比如休息時,也就是說遊戲時間通常在15分鐘或者更短的時間內。

如何製作Flash遊戲 第2張

(03)熟悉AS3語言。製作Flash遊戲需要用到AS3語言,為了成功的製作出遊戲,你需要對它的工作原理有所瞭解。對如何在AS3中程式設計所有了解之後,你就能製作出簡單的遊戲了。在亞馬遜或者其他商店中,都有關於ActionScript語言的教程,網上也有很多教程和例子可供學習。

如何製作Flash遊戲 第3張

(04)下載Flash Professional。這個軟體是收費的,但是用它可以很快的製作出Flash遊戲。同時它還包含很多功能(包括一些開源的功能),不過這些功能有的相容性差,有的效率低。Flash Professional是製作遊戲唯一需要用到的軟體。

如何製作Flash遊戲 第4張

寫一個基本的遊戲

(01)瞭解AS3程式碼的基本構建塊。在製作遊戲的過程中,你可能會用到幾種不同的程式碼結構。在AS3程式碼中,主要有三種類型的程式碼結構:變數 —— 這是用來儲存資料的地方。資料的型別種類很多,可以是數字、字元(字串)、物件等等。使用var命令來定義變數,並且變數名只能是一個單詞。varplayerHealth:Number=;// “var”表示你要定義一個變數。// “playerHealth”是變數的名字。// “Number”是變數的型別。// “100”是變數中的數值。// 所有命令都以“;”結尾。事件處理器 —— 事件處理器會在特定的事發生時,告訴程式之後該如何執行。這是玩家在輸入和重複程式碼時所必須用到的。事件處理器通常會呼叫函式。(K, swingSword);// “addEventListener()” 定義事件處理器的型別。// “MouseEvent”是事件的型別。// “K”是事件中的特定動作。// “swingSword”是事件發生後,需要用到的函式。函式 —— 部分程式碼會有一個關鍵詞作為名字,方便之後呼叫。遊戲的執行離不開函式,複雜的遊戲可能會用到數百條函式,而簡單的遊戲可能只需要用到幾條函式。函式只有被呼叫時才會起作用,所以它們的順序無所謂。functionswingSword(e:MouseEvent):void;// “function”是每個函式之前都要有的關鍵詞。// “swingSword”是函式名。// “e:MouseEvent”是附加引數,表明函式是由該事件處理器呼叫的。// “:void”是函式的返回值。如果無資料返回,使用:void。

(02)建立物件。要製作遊戲,你必須建立可以和玩家互動的物件。根據教程的不同,“物件”可能會叫做“精靈”、“演員”或者“影片剪輯”。要製作這個簡單的遊戲,你需要建立一個長方形。開啟Flash Professional。建立新的專案。點選工具欄中的矩形工具。根據軟體的配置不同,工具欄的位置也會不同。在當前視窗中畫一個長方形。用選擇工具,選中長方形。

(03)給物件指定屬性。選中長方形之後,開啟設計選單,選擇“轉化為元件”(也可在選中之後,按下F8)。在“轉化為元件”視窗中,給你的物件命名,比如“敵人”。開啟配置視窗。當滑鼠懸停在視窗上方時,會出現一個叫“例項名”的空白文字框。輸入上一步中你給物件的命名(“敵人”)。這樣就建立了一個可以通過AS3語言互動的“名字”。每一個“例項”都是單獨的物件,都可以用程式碼進行控制。點選資源庫標籤,然後將例項拖進場景中,就可以複製已建立的例項。每新增一個例項,它的名字就會改變一次,以示區分(“敵人”、“敵人1”、“敵人2”等等)。要在程式碼中使用物件,只需要輸入它的名字即可,本例中就是“敵人”。

(04)改變例項的屬性。生成一個例項之後,你可以通過AS3改變它的屬性。改變它的位置、調整它的大小,等等。輸入例項和引數的數字,中間以“.”分隔,就可以改變它的屬性:enemy.x = 150; 改變enemy在x軸上的位置。enemy.y = 150; 改變enemy在y軸上的位置。y軸是從螢幕頂端開始計算的。tion = 45;讓enemy順時針旋轉45度。eX = 3;將enemy的寬延長3倍。輸入負數的話,就會翻轉物件。eY = 0.5;將物件的高減半。

(05)使用trace()命令檢查。這個命令將當前值返回給物件,用來檢查程式執行是否無誤。在最終程式碼中不需要用到這個命令,通常使用這個命令來檢查遊戲的錯誤。

(06)利用上述資訊製作一個遊戲。現在,你已經對它的核心功能有所瞭解了,現在你可以用它來製作一個小遊戲。遊戲是這樣的:每次點選敵人都會改變它的大小,生命耗盡,遊戲結束。varenemyHP:Number=;// 將初始生命設為100。varplayerAttack:Number=;// 設定玩家的攻擊力。ventListener(K, attackEnemy);// 對物件使用這個函式,當物件被點選時才會生效,點選其它地方不會有效果。setEnemyLocation();// 這個函式可以設定“敵人”的位置,在遊戲開始時生效。functionsetEnemyLocation():void{enemy.x=;// 讓“敵人”向右移動200畫素。enemy.y=;// 讓“敵人”向下移動150畫素。tion=;// 讓“敵人”瞬時針轉動45度trace("enemy's x-value is", enemy.x,"and enemy's y-value is", enemy.y);// 顯示當前“敵人”的位置,從而進行除錯。}functionattackEnemy(e:MouseEvent):void// 建立“敵人”被點選時執行的函式。{enemyHP = enemyHP - playerAttack;// 從生命值中減去攻擊力,結果是剩餘的生命值。eX= enemyHP/;// 根據新的生命值,改變寬度。除以100,轉化為小數。eY= enemyHP/;// 根據新的生命值,改變寬度。trace("The enemy has", enemyHP,"HP left");//輸入“敵人”的生命值。}

(07)執行一下。完成上述程式碼之後,你就可以試試你的新遊戲了。點選控制選單,選擇測試影片,遊戲就開始了。點選“敵人”,看看它的大小是否變化了。Trace函式的輸出結果會顯示在結果視窗中。

進階技巧

(01)“包”的功能。ActionScript是基於Java設計,用到了很多和Java類似的包機制。“包”可以允許你用獨立的檔案儲存變數、常量、函式和其它資訊,然後將這些檔案輸入到程式中。使用現成的包可以簡化遊戲的製作過程。閱讀更多的文章來了解Java中“包”的功能。

(02)建立物件資料夾。如果你的遊戲當中需要用到很多圖片和生效,那麼你需要建立一個資料夾來儲存它們。這可以方便你儲存不同的資料,以及需要的軟體包。建立根目錄,然後在根目錄中,建立“img”資料夾,用來儲存所有影象;建立“snd”資料夾,用來儲存所有音效檔案;建立“src”檔案,用來儲存所有用到的包和程式碼。在“src”資料夾中,建立“Game”資料夾,用來儲存遊戲中的常量檔案。當然沒有必要將資料夾的結構弄成這樣,但是這可以方便你管理你的遊戲和素材,特別是要用到很多物件的遊戲。如果只是像上文中的小遊戲一樣簡單,你就不需要用到這種資料夾結構。

(03)給你的遊戲新增音效。沒有音效或音樂的遊戲,很容易讓人乏味。使用圖層工具,可以給物件加上音效。詳情可以參閱相關文章。

(04)建立常量檔案。如果遊戲中的很多變數的值,自始至終都不變,那麼你可以建立常量檔案來儲存它們,這可以方便呼叫。常量可以包含引力、玩家速度或者其它你需要經常呼叫的值。如果你要建立常量檔案,你需要將它們放到遊戲的資料夾中,然後以包的形式輸入。比如,你建立了一個常量檔案,然後將它放到“Game”資料夾中。匯入時,使用如下命令:{importGame.*;}

(05)看看別人的遊戲。儘管大多數開發者不會透漏所有的遊戲程式碼,但是有很多教程和其它開放專案的程式碼可以供你參考,讓你瞭解程式碼和它與物件的互動方法。這是一個很好的可以學習到很多進階技巧,從而讓你的遊戲更出色的方法。

熱門標籤