开发者社区> 问答> 正文

我怎样才能让游戏重新开始?

我正在做一个游戏界面,它包括一个重启按钮。我让重启按钮,如果按下重置基本变量为假和0,但不是重新开始游戏只是退出。我不知道是否变量不能再次设置为真,或者是否有一个代码语句,重新启动一切,包括变量。有什么建议吗? 所有代码都在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()


问题来源StackOverflow 地址:/questions/59378684/how-would-i-get-the-game-to-restart

展开
收起
kun坤 2019-12-30 10:17:54 853 0
1 条回答
写回答
取消 提交回答
  • 你可以像这样使用循环

     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
    
    2019-12-30 10:18:00
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
你的游戏,真的安全吗 立即下载
你的游戏,真的安全么? 立即下载
让世界没有陌生的角落 共享单车时代的快与慢 立即下载