python及pygame雷霆战机游戏项目实战14 游戏开始结束界面

简介: python及pygame雷霆战机游戏项目实战14 游戏开始结束界面

项目详细介绍


项目详细介绍

在这个系列中,将制作一个雷霆战机游戏。


image.png


游戏结束

现在,当玩家用完生命时,程序就会突然结束。这不是很友好。

所以将制作一个“Game Over”屏幕,并允许玩家再次玩。

“Game Over”屏幕在2种情况下显示:

  • 游戏程序刚刚启动后
  • 玩家3条命都用完

游戏结束的原因是游戏循环由running变量控制,设置running为False玩家死亡时。现在想要跟踪游戏状态(显示游戏结束或玩游戏),将创建一个名为game_over的标志,并将其添加到游戏循环的顶部:

# Game loop
game_over = True
running = True
while running:
    if game_over:
        show_go_screen()

稍后会定义show_go_screen()。

目前还需要考虑别的事情。

当游戏结束,通过屏幕进入游戏时,如果玩家再次选择游戏,需要重置所有内容 - 得分,流星,玩家的生命等等。现在在游戏开始前设置这些东西,但现在要将它们移动到show_go_screen()之后,show_go_screen()函数运行结束后,它们会发生:

# Game loop
game_over = True
running = True
while running:
    if game_over:
        show_go_screen()
        game_over = False
        all_sprites = pygame.sprite.Group()
        mobs = pygame.sprite.Group()
        bullets = pygame.sprite.Group()
        powerups = pygame.sprite.Group()
        player = Player()
        all_sprites.add(player)
        for i in range(8):
            newmob()
        score = 0

还设置game_over到False,因为正在开始一个新的游戏。然后,可以改变玩家用完生命时发生的事情--- game_over = True

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

游戏结束屏幕

现在只需要定义什么show_go_screen。因为在这个例子中,只做一个“屏幕”,只是要使用游戏的标题,并提供一些很好的说明如何玩:

def show_go_screen():
      screen.blit(background, background_rect)
    draw_text(screen, "雷霆战机!", 64, WIDTH / 2, HEIGHT / 4)
    draw_text(screen, "方向键移动, 空格键开火", 22,
              WIDTH / 2, HEIGHT / 2)
    draw_text(screen, "按下任意键开始游戏", 18, WIDTH / 2, HEIGHT * 3 / 4)
    pygame.display.flip()
    waiting = True
    while waiting:
        clock.tick(FPS)
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
            if event.type == pygame.KEYUP:
                waiting = False

show_go_screen()函数里面运行一个死循环,直到用户按下任意键后,退出死循环,结束函数。


image.png


项目源码及资源


获取地址


目录
相关文章
|
Python
python及pygame雷霆战机游戏项目实战05 改进的碰撞
python及pygame雷霆战机游戏项目实战05 改进的碰撞
145 0
|
Python
python及pygame雷霆战机游戏项目实战04 添加图形
python及pygame雷霆战机游戏项目实战04 添加图形
131 0
|
Python
python及pygame雷霆战机游戏项目实战01 控制飞机
python及pygame雷霆战机游戏项目实战01 控制飞机
243 0
|
Python
python及pygame雷霆战机游戏项目实战12 血条恢复
python及pygame雷霆战机游戏项目实战12 血条恢复
184 0
|
Python
python及pygame雷霆战机游戏项目实战03 碰撞检测
python及pygame雷霆战机游戏项目实战03 碰撞检测
214 0
|
Python
python及pygame雷霆战机游戏项目实战09 玩家飞机添加血条
python及pygame雷霆战机游戏项目实战09 玩家飞机添加血条
206 0
|
Python
python及pygame雷霆战机游戏项目实战13 子弹增强
python及pygame雷霆战机游戏项目实战13 子弹增强
162 0
|
Python
python及pygame雷霆战机游戏项目实战02 敌人精灵
python及pygame雷霆战机游戏项目实战02 敌人精灵
133 0
|
Python
python及pygame雷霆战机游戏项目实战06 更多类型的敌机
python及pygame雷霆战机游戏项目实战06 更多类型的敌机
142 0
|
存储 Python
python及pygame雷霆战机游戏项目实战10 爆炸效果
python及pygame雷霆战机游戏项目实战10 爆炸效果
269 0

热门文章

最新文章

推荐镜像

更多