Python 如何为智力竞赛游戏创建重置计时器?

Python 如何为智力竞赛游戏创建重置计时器?,python,pygame,Python,Pygame,我正在尝试为我的问答游戏创建计时器。它应该在每个正确的问题后重置。但我的代码的问题是,每次重置后,它的速度都在不断提高 timeCount = 30 def countdown(): global timeCount while timeCount > 0: print(timeCount) sleep(1) timeCount -= 1 else: print("Time Out!") 您可以使用函数

我正在尝试为我的问答游戏创建计时器。它应该在每个正确的问题后重置。但我的代码的问题是,每次重置后,它的速度都在不断提高

timeCount = 30
def countdown():
   global timeCount
   while timeCount > 0:
      print(timeCount)
      sleep(1)
      timeCount -= 1
   else:
      print("Time Out!")

您可以使用函数time.perf_counter():

在上面的示例中,time.perf_counter()计算调用它时的时间,以便提供两次调用之间经过的时间

如果要使用当前逻辑:

“global”语句意味着您将在代码执行期间修改“timeCount”变量。要解决此问题,可以在函数中使用一个新的局部变量(在下面的解决方案中称为“local_count”),如下所示:每次调用函数时都重置倒计时:

import time

timeCount = 30
def countdown():
   local_count = timeCount
   while local_count > 0:
      print(local_count)
      time.sleep(1)
      local_count -= 1
   print("Time Out!")

我想这就是你想要做的:

import time

timeCount = 30
start = time.time()
seconds = 0
def countdown():
   global timeCount
   global seconds
   while seconds  < timeCount:
       now = time.time()
       seconds = now - start
       print(timeCount - seconds)
   else:
      print("Time Out!")

countdown()

如何重置计时器?你能提供更多关于“提高速度”的详细信息吗?我不太确定你目前是如何重置计时器的,你能更清楚一点吗?我只是将timeCount重置为30。例如,timeCount=30请提供一个。
import time

timeCount = 30
start = time.time()
seconds = 0
def countdown():
   global timeCount
   global seconds
   while seconds  < timeCount:
       now = time.time()
       seconds = now - start
       print(timeCount - seconds)
   else:
      print("Time Out!")

countdown()
seconds = int(seconds)