Skip to main content
 首页 » 编程设计

python之pygame Python 的跟踪时间

2025年05月04日11zdz8207

尝试使用 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