少儿编程之使用PyGame编写游戏(16):太空大撞击 添加游戏结束界面

游戏结束

现在,当玩家的生命耗尽时,程序就会突然结束。 这太不友好了,所以我们将设置一个“游戏结束”界面,并允许玩家根据需要重玩游戏。

游戏结束的原因是我们的游戏循环由运行标志控制(标志是一个变量,可以是 True 或 False),当玩家死亡时我们将 running 设置为 False。 相反,我们想要跟踪我们的游戏处于什么状态(显示游戏结束或正在玩),我们将创建一个名为 game_over 的标志,并将其添加到游戏循环的顶部:

  1. # Game loop
  2. game_over = True
  3. running = True
  4. while running:
  5. if game_over:
  6. show_go_screen()

我们稍后会定义 show_go_screen(),我们还需要考虑其他因素。 当游戏结束,我们进入游戏结束画面,如果玩家选择再次玩,我们需要重置所有东西——分数、Mob、玩家的生命等等。当前,我们是在游戏循环之前设置这些内容,现在我们要将它们移动到 show_go_screen() 之后,这样当玩家退出该屏幕时它们就会执行:

  1. # Game loop
  2. game_over = True
  3. running = True
  4. while running:
  5. if game_over:
  6. show_go_screen()
  7. game_over = False
  8. all_sprites = pygame.sprite.Group()
  9. mobs = pygame.sprite.Group()
  10. bullets = pygame.sprite.Group()
  11. powerups = pygame.sprite.Group()
  12. player = Player()
  13. all_sprites.add(player)
  14. for i in range(8):
  15. newmob()
  16. score = 0

我们还将 game_over 设置为 False,因为我们正在开始一个新游戏。 然后,我们可以改变玩家生命耗尽时发生的情况:

  1. # if the player died and the explosion has finished playing
  2. if player.lives == 0 and not death_explosion.alive():
  3. game_over = True

游戏结束画面

现在我们只需要定义 show_go_screen 做什么。 因为对于这个例子,我们只做一个“屏幕”,我们只是要使用游戏的标题,并给出一些关于如何玩指导说明:

  1. def show_go_screen():
  2. screen.blit(background, background_rect)
  3. draw_text(screen, "SHMUP!", 64, WIDTH / 2, HEIGHT / 4)
  4. draw_text(screen, "Arrow keys move, Space to fire", 22,
  5. WIDTH / 2, HEIGHT / 2)
  6. draw_text(screen, "Press a key to begin", 18, WIDTH / 2, HEIGHT * 3 / 4)
  7. pygame.display.flip()
  8. waiting = True
  9. while waiting:
  10. clock.tick(FPS)
  11. for event in pygame.event.get():
  12. if event.type == pygame.QUIT:
  13. pygame.quit()
  14. if event.type == pygame.KEYUP:
  15. waiting = False

最后的 while 循环是我们处理“按一个键开始”部分的方式。 这有点像一个微型游戏循环,但我们所做的只是检查事件。 我们关心的唯一事件是 pygame.QUIT,它在单击窗口上的 X 时发生,以及按键事件。 你注意到我们没有在那里使用’pygame.KEYDOWN’吗?

使用 KEYUP 的原因是我们不会在玩家仍然按住键时开始游戏。 他们必须点击并释放才能继续。

这是在屏幕上进行游戏的一种非常简单的方法。 还有许多其他方法可以处理它,但我们将在后面的教程中讨论这些方法。

将所有内容封装起来

我们有了它,你的第一个完整的 Pygame 游戏! 如果您通过所有这些步骤都坚持下去,那么您就可以成为一名游戏程序员了。

显然我们可以添加更多的东西,比如:

  • 增加难度
  • 更多通电
  • 添加敌人(以及敌人的反击!)
  • 高分系统
  • boss等级
    您可能还可以考虑其他想法。在以后的课程中,我们将介绍其他技术,然后您可以再倒回来应用到这个游戏中。
    完整的代码请点击此处访问

题图来自unsplash

微信扫一扫,分享此文章

少儿编程教学平台

联系我们

微信

aguibo002

邮箱

haoxuehaojiao在163.com

Loading
我们已经收到您的信息,将尽快联系您!