使用 WinForms 对象实现的 C# 太空侵略者






4.52/5 (12投票s)
仅使用标签、面板和图片创建这个经典游戏
引言
太空侵略者是世界上最著名的街机游戏之一,我们许多程序员都用自己喜欢的编程语言开发了这个游戏的版本。我决定仅使用 WinForms 对象创建一个版本,尽可能保留其功能(主要是图形)。

背景
首先,您需要知道每个标签对象都有其图像属性,可以用作文本的背景。当然,如果您将文本设置为空字符串string
,您只会看到图像本身!因此,我决定使用标签来表示玩家飞船、外星人和子弹。为了移动外星人,我将它们全部放在一个面板中,这样我就可以仅通过设置面板的顶部和左侧属性来移动整个舰队。更准确地说,有两个面板和两个舰队,它们交替显示以改变外星人的位置。
Using the Code
游戏中每个主要角色都有一个类:子弹、侵略者和飞船。在主窗体中,一个计时器用于检查键盘输入,另一个计时器用于移动角色。为了平滑地处理键盘输入,我没有使用 KeyPress
事件,而是使用了 DDL user32
中的 GetAsyncKeyState
;这样,按键的第一次和第二次按下之间没有延迟。
注意:使用左右箭头键移动飞船,使用空格键射击。
历史
- 2008 年 6 月 17 日:这是 0.5 版本。不包含声音。此外,缺少侵略者的飞船(在屏幕上方飞过的那个)。一个已知错误是外星人不会破坏碉堡(这意味着当外星人到达碉堡的位置时,它们会从碉堡后面穿过)。