跟踪pygame Python的时间

时间:2013-11-08 23:34:32

标签: python timer pygame

尝试使用pygame计时器并寻找暂停计时器的方法,并从上一次再次启动计时器。


pygame.time.get_ticks()这样的函数可以记录从应用程序开始的时间。

delaywait等功能会冻结程序。我不希望这样。

是否有一种简单的方法可以跟踪计时器对象,在需要时暂停它并在需要时继续它?

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变量,每次暂停时我都可以设置为零。


我可能有任何想法或简单的方法看了吗?

1 个答案:

答案 0 :(得分:1)

这样的事可能有用。但是没有测试过它。

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