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
这可能很简单,但我想不出办法;我正在尝试打印秒数。我使用:
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