尝试使用 pygame 计时器并寻找暂停计时器的方法,然后从上一次开始再次启动计时器。
pygame.time.get_ticks() 等函数用于记录应用程序启动时的时间。
像delay 或wait 这样的函数会卡住程序。我不想这样。
有没有一种简单的方法来跟踪计时器对象,在需要时暂停它并在需要时继续它?
def timer(self):
self.time = (pygame.time.get_ticks()//1000)
self.time = self.time - self.pausetime
return self.time
self.pausetime = (pygame.time.get_ticks()//1000)
以上将不起作用,因为如果 self.pausetime 是在不同时间定义的不同变量,它仍将返回自应用程序启动以来的时间量。
我想我需要一个 pause 变量,每次我暂停时都可以将其设置为零。
我可能忽略了任何想法或简单方法吗?
请您参考如下方法:
这样的事情可能会奏效。不过还没有测试过。
class Timer:
def __init__(self):
self.accumulated_time = 0
self.start_time = pygame.time.get_ticks()
self.running = True
def pause(self):
if not self.running:
raise Exception('Timer is already paused')
self.running = False
self.accumulated_time += pygame.time.get_ticks() - self.start_time
def resume(self):
if self.running:
raise Exception('Timer is already running')
self.running = True
self.start_time = pygame.time.get_ticks()
def get(self):
if self.running:
return (self.accumulated_time +
(pygame.time.get_ticks() - self.start_time))
else:
return self.accumulated_time
