《太空侵略者》是我過去最喜歡的街機遊戲之一。
我不得不自己做一個版本。
我忠實於經典遊戲的基本特性,除了向量圖形部分。
這個遊戲的設計使得幾乎所有的遊戲資料都在程式啟動時從文字檔案中讀取。
使用者可以透過修改這些文字檔案中的資料來改變幾乎所有遊戲玩法方面和/或使用的影像及聲音。
我將首先介紹遊戲本身。
然後,我將詳細描述配置檔案的(上面提到的)內容。
您會在本文末尾找到 3 個 zip 檔案的連結,其中包含所有內容。
**《太空侵略者》**
程式啟動時會顯示歡迎選單。有兩個按鈕用於選擇控制模式。
遊戲可以使用滑鼠或鍵盤進行。說明會顯示在歡迎選單上。
遊戲可以無限進行,只要您得分足夠高,能比損失的飛船獲得更多的飛船。
再來幾張截圖。摧毀岩石
被擊中
最後,遊戲結束時,會出現一個遊戲結束選單。
那個 UFO 在朝什麼射擊?
這裡的選項是退出或返回歡迎選單進行下一局遊戲。
** 配置檔案 **
我使用了一個由多個文字檔案組成的系統來儲存大部分遊戲資料。
我將根據它們在各個區域的應用來介紹它們。
1) 調整飛船屬性和設計關卡。
我將所有這些資料都放在主資料夾中的“levels_config.txt”檔案中。
前 3 行如下所示
10000 6 10.0 20.0 0.3 0.01
1000 10.0
100 200 300
第 1 行包含所有好人飛船的資料。
這 6 個數字分別是
每獲得一艘新飛船的得分(10000)
同時存在的最大彈藥數(6)
彈藥速度(畫素/幀)(10.0)
飛船最大速度(20.0)
加速度(畫素/幀^2)(0.3)
速度阻尼率(0.01)
第 2 行是壞人飛船的資料。
得分值(1000)
彈藥速度(10.0)
第 3 行是小行星的得分值
大(100)中(200)小(300)
檔案其餘部分用於定義關卡。
首先,給出關卡數量(4)。
然後,給出每個關卡的資料
1) 小行星數量(3)
每顆小行星 1 行資料
2) 壞人飛船數量(2)
每艘壞人飛船 1 行資料。
檔案示例
4 <— 關卡數量
3
0 4 200.0 700.0 0.1 -1.4
0 4 -80.0 200.0 1.0 1.1
0 4 820.0 100.0 -1.1 1.0
2
0 2 80 700 -50.0 100.0 3.0 0.0
1 2 60 500 850.0 500.0 -4.0 0.0
以上資料是為第 1 關準備的。
每顆小行星的資料包含六個數字。示例值來自第一艘飛船。
精靈表中的哪個幀集(0)
動畫延遲幀數(小行星緩慢翻滾)(4)
初始 x 位置(200.0)
初始 y 位置(700.0)
初始 x 速度(0.1)
初始 y 速度(-1.4)
每艘壞人飛船的資料包含八個數字。示例值來自第一艘飛船。
精靈表中的哪個幀集,正常動畫。(0)
精靈表中的哪個幀集,爆炸動畫。(2)
射擊週期(以幀為單位)(80)
發射週期(以幀為單位)(700)
初始 x 位置(-50.0)
初始 y 位置(100.0)
初始 x 速度(3.0)
初始 y 速度(0.0)
將有 4 個這樣的資料塊。提供的檔案中包含 5,3 7,4 9,3(小行星,壞人飛船)
對應剩餘的 3 個關卡。
最後一艘壞人飛船會一直重複,直到關卡結束。
最後一關會無限重複。
** “levels_config.txt”描述結束 **
影響遊戲玩法的絕大多數資料都位於上面描述的檔案中,但我想讓
使用者能夠更改使用的影像和聲音檔案。
聲音部分最簡單。
在“AudioClips”資料夾中有一個名為“list_audio_files.txt”的文字檔案,其中列出了此遊戲中使用的 5 個
聲音的檔名。現有的檔案都是 .wav 格式,但其他格式也應該可用(除了
mp3,因為存在專有問題)。
順序必須保持一致,並且必須有 5 個檔名。
列出的 5 種聲音按順序是
好人飛船武器聲音
壞人飛船武器聲音
爆炸聲音
歡迎選單音樂(迴圈)
遊戲結束選單音樂(迴圈)
每個精靈表的配置檔案包含有關該表上幀的資料。
精靈表配置檔案列表在“bmpImages/list_config_files.txt”中
目前它們是
bmpImages/goodShip_config.txt
bmpImages/badShip_config.txt
bmpImages/rocks_config.txt
bmpImages/smallShot_config.txt
bmpImages/digits_config.txt
我們將檢視其中第一個(用於好人飛船)來了解資料的組織方式。
“bmpImages/goodShip_config.txt”的內容是
bmpImages/gOneB.bmp
3 4 48 48
0 4 24 34
1 4 24 19
2 14 48 48
第一行 = 影像檔名。
第二行 = 4 個數字。
幀集數量(3)
表中幀的列數(4)
幀的尺寸,寬度(48)
幀的尺寸,高度(48)
然後,每個幀集(3)一行,每行四個數字。
幀集開始的行(0,1,2)
該幀集中的幀數(4,4,14)
此幀集的實際幀寬度(24,24,48)
此幀集的實際幀高度(34,19,48)
** 配置檔案說明結束 **
以下是遊戲的配套檔案。
似乎附件檔案的上傳大小限制為 1MB,所以我不得不將檔案分成 3 個檔案。
1) Asteroids.zip
包含:3 個資料夾 - source_code, bmpImages, AudioClips
和 2 個檔案:Asteroids_stat.exe, levels_config.txt
“AudioClips”資料夾僅包含一個名為“list_audio_files.txt”的文字檔案。
此列表中的 5 個 .wav 檔案必須放入 AudioClips 資料夾。
2) Audio_1.zip
包含:2 個音訊 dll 檔案 - openal32.dll, libsndfile-1.dll
和 4 個 .wav 檔案
這些 dll 檔案應放在與 Asteroids_stat.exe 相同的資料夾中。
這 4 個 .wav 檔案應放在“AudioClips”資料夾中。
3) Audio_2.zip
包含:第 5 個 .wav 檔案“levelBK3.wav”
希望您能玩得開心,並嘗試修改遊戲玩法。
如果您開發了任何殺手級關卡,請與我分享!
我接受(並回復)私信。
附件:[Asteroids.zip] [Audio_1.zip] [Audio_2.zip]