我如何让游戏重新开始?

2024-04-24 11:06:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在制作一个游戏屏幕,里面有一个重启按钮。我做了重新启动按钮,如果按下重置基本变量为假和0,但不是重新启动游戏只是退出。我不知道变量是否不能再次设置为true,或者是否有一个代码语句可以重新启动包括变量在内的所有内容。有什么建议吗? 所有代码都在def DrawGameOver中。你知道吗


def DrawGameOver():
    win.blit (Overscreen, (0, 0))
    button1 = pygame.Rect(200, 400, 100, 50)
    pygame.draw.rect(win, [255, 0, 0], button1)
    if event.type == pygame.MOUSEBUTTONDOWN:
        mouse_pos = event.pos
        if button1.collidepoint(mouse_pos):
            player.gameover = False
            player.run = True
            player.grassdamage = 0
            player.damage1 = False
            player.damage2 = False
            player.damage3 = False
            player.damage4 = False
            player.damage5 = False
            player.damage6 = False
            player.damage7 = False
            player.damage8 = False
            player.score = 0
            time_now = 0
    Text = pygame.font.Font('freesansbold.ttf', 20)
    TextSurf, TextRect = text_objects("Restart?", Text)
    TextRect.center = ((250), (425))
    win.blit(TextSurf, TextRect)
    pygame.display.update()

while player.gameover:
    clock.tick (60)
    print (player.run, player.gameover)
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            player.gameover = False
        elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_ESCAPE:
                player.gameover = False
    DrawGameOver()



Tags: 代码poseventfalse游戏iftype按钮
1条回答
网友
1楼 · 发布于 2024-04-24 11:06:21

你可以用这样的循环

 while True: 
      intro()
      menu()
      game()
      gameover()

它应该一次又一次地运行游戏

如果函数在您想要结束游戏时返回False,那么您可以这样做

 while True: 
      if not intro():
         break
      if not menu():
         break
      if not game():
         break
      if not gameover():
         break

相关问题 更多 >