13.7 确定应运行游戏的哪些部分
我们需要确定游戏的哪些部分在任何情况下都应运行,哪些部分仅在游戏处于活动状态时才运行:
alien_invasion.py
def run_game(self):
"""开始游戏主循环。"""
while True:
self.checkevents()
if self.stats.game_active:
self.ship.update()
self.updatebullets()
self.updatealiens()
self.updatescreen()
在主循环中,在任何情况下都需要调用checkevents() ,即便游戏处于非活动状态。例如,我们需要知道玩家是否按了Q 键以退出游戏,或者是否单击了关闭窗口的按钮。我们还需要不断更新屏幕,以便在等待玩家是否选择开始新游戏时修改屏幕。其他的函数仅在游戏处于活动状态时才需要调用,因为游戏处于非活动状态时,不用更新游戏元素的位置。
现在运行这个游戏,它将在飞船用完后停止不动。
动手试一试
练习13-6:游戏结束 在为完成练习13-5而编写的游戏中,记录飞船被撞到了多少次以及有多少外星人被射杀。确定合适的游戏结束条件,并在满足该条件后结束游戏。