• 文章
  • 一个可自定义的《太空侵略者》游戏。
2012 年 12 月 19 日(最后更新:2012 年 12 月 19 日)

一个可自定义的《太空侵略者》游戏。

得分:4.2/5(206 票)
*****
《太空侵略者》是我过去最喜欢的街机游戏之一。
我不得不自己做一个版本。

我忠实于经典游戏的基本特性,除了矢量图形部分。
这个游戏的设计使得几乎所有的游戏数据都在程序启动时从文本文件中读取。
用户可以通过修改这些文本文件中的数据来改变几乎所有游戏玩法方面和/或使用的图像及声音。

我将首先介绍游戏本身。
然后,我将详细描述配置文件的(上面提到的)内容。
您会在本文末尾找到 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]