Pygame - 使用 Time 打印秒数

Pygame - Printing out seconds using Time

这可能很简单,但我想不出办法;我正在尝试打印秒数。我使用:

r = int(pygame.time.get_ticks)
print(r/1000)

它打印出秒数,但我希望它只打印一次秒数。所以基本上它会输出类似:11111112222222233333333 ...,当我正在寻找类似的东西时:1 2 3 ...
如果有人能帮助我,我真的很感激。谢谢。

您需要跟踪秒的最后一个值,并且只有在秒的新值发生变化时才打印。

last_seconds = None
while True:
    # Run game
    r = int(pygame.time.get_ticks)
    seconds = r / 1000
    if seconds != last_seconds:
        print(seconds)
        last_seconds = seconds

您可以通过编写捕获 "last ticks" 并将其与 "current ticks" 进行比较的函数来使用闭包来完成此操作。这样你每 1s 只打印 "time since init"。

示例:

def get_time_since_init():
    last_ticks = int(pygame.time.get_ticks())
    def wrapper()
        ticks = int(pygame.time.get_ticks())
        delta = (ticks - last_ticks) / 1000
        if delta > 1:
            last_ticks = ticks
            print(ticks / 1000)
    return wrapper