12.7 简单回顾

下一节将添加射击功能,为此需要新增一个名为bullet.py的文件,并修改一些既有文件。当前有三个文件,其中包含很多类和方法。添加其他功能之前,先来回顾一下这些文件,让你清楚这个项目的组织结构。

12.7.1 alien_invasion.py

主文件alien_invasion.py包含AlienInvasion 类。这个类创建一系列贯穿整个游戏都要用到的属性:赋给self.settings 的设置,赋给screen 中的主显示surface,以及一个飞船实例。这个模块还包含游戏的主循环,即一个调用checkevents()ship.update()updatescreen()while 循环。

方法checkevents() 检测相关的事件(如按下和松开键盘),并通过调用方法checkkeydown_events()checkkeyup_events() 处理这些事件。当前,这些方法负责管理飞船的移动。AlienInvasion 类还包含方法updatescreen() ,该方法在每次主循环中重绘屏幕。

要玩游戏《外星人入侵》,只需运行文件alien_invasion.py,其他文件(settings.py和ship.py)包含的代码会被导入这个文件中。

12.7.2 settings.py

文件settings.py包含Settings 类,这个类只包含方法init() ,用于初始化控制游戏外观和飞船速度的属性。

12.7.3 ship.py

文件ship.py包含Ship 类,这个类包含方法init() 、管理飞船位置的方法update() 和在屏幕上绘制飞船的方法blitme() 。表示飞船的图像存储在文件夹images下的文件ship.bmp中。

动手试一试
练习12-3:Pygame文档  你在编写游戏的道路上走了很远,可能想看看Pygame文档。目前,只需大致浏览一下文档即可。在完成本章项目的过程中,不需要参阅这些文档,但如果你想修改游戏《外星人入侵》或编写自己的游戏,这些文档将会有所帮助。
练习12-4:火箭  编写一个游戏,它在屏幕中央显示一个火箭,而玩家可使用四个方向键上下左右移动火箭。请务必确保火箭不会移到屏幕外面。
练习12-5:按键  创建一个程序,它显示一个空屏幕。在事件循环中,每当检测到pygame.KEYDOWN 事件时都打印属性event.key 。运行这个程序并按各种键,看看Pygame如何响应。