简单回顾

在下一节中,我们将添加发射子弹的功能,这涉及添加一个名为 bullet.py 的新文件并对我们已经使用的一些文件进行一些修改。 现在,我们有三个文件,其中包含许多类和方法。 为了清楚地了解项目的组织方式,让我们在添加更多功能之前查看每个文件。

alien_invasion.py

主文件 Alien_invasion.py 包含 AlienInvasion 类。 这个类创建了一些在整个游戏中使用的重要属性:设置被分配给 settings,主显示表面(surface)被分配给屏幕(screen),并且在这个文件中也创建了一个船(ship)实例。游戏的主循环,即 while 循环,也存储在该模块中。 while 循环调用 _check_events()、ship.update() 和 _update_screen()。 它还在每次循环时计时。

_check_events() 方法检测相关事件,例如按键和释放,并通过方法 _check_keydown_events() 和 _check_keyup_events() 处理每种类型的事件。 目前,这些方法管理船舶的运动。 AlienInvasion 类还包含 _update_screen(),它在每次通过主循环时重绘屏幕。

Alien_invasion.py 文件是您想要玩 Alien Invasion 时需要运行的唯一文件。其他文件 settings.py 和 Ship.py 包含导入到此文件中的代码。

settings.py

settings.py 文件包含 Settings 类。 这个类只有一个 __init__() 方法,它初始化控制游戏外观和船速的属性。

ship.py

Ship.py 文件包含 Ship 类。 Ship 类有一个 __init__() 方法、一个用于管理船舶位置的 update() 方法以及一个用于将船舶绘制到屏幕上的 blitme() 方法。 船舶的图像存储在 images 文件夹中的 ship.bmp 中。

自己试试
12-3.Pygame Documentation

现在我们已经深入了解了游戏,您可能想查看一些 Pygame 文档。 Pygame 主页位于 https://pygame.org,文档主页位于 https://pygame.org/docs。 现在只需浏览一下文档即可。 您不需要它来完成这个项目,但如果您想修改外星人入侵或之后制作自己的游戏,它将有所帮助。

12-4.Rocket

制作一个以屏幕中央的火箭开始的游戏。 允许玩家使用四个箭头键向上、向下、向左或向右移动火箭。 确保火箭永远不会超出屏幕的任何边缘。

12-5.Keys

创建一个 Pygame 文件来创建一个空屏幕。 在事件循环中,每当检测到 pygame.KEYDOWN 事件时,就打印 event.key 属性。 运行程序并按各个键来查看 Pygame 如何响应。