【问题标题】:Pygame - Printing out seconds using TimePygame - 使用时间打印出秒数
【发布时间】:2015-07-26 19:18:57
【问题描述】:

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

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

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

【问题讨论】:

  • 这实际上与 pygame 没有任何关系,特别是。使用一个位于主循环之外的变量,例如,'t' 并将其分配给 0。然后,检查 get_ticks(转换为整数)是否与 t 不同,如果是 - 打印 get_ticks 并分配值到t。

标签: python time pygame clock


【解决方案1】:

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

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

【讨论】:

  • 我正在尝试使用您的示例,但我没有得到秒数,我得到的是十进制数字。有什么想法吗?
【解决方案2】:

您可以通过编写一个捕获“最后滴答声”并将其与“当前滴答声”进行比较的函数来使用闭包来做到这一点。这样,您每 1 秒只打印一次“自初始化以来的时间”。

示例:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-26
    • 2013-03-22
    • 1970-01-01
    • 2015-10-09
    • 1970-01-01
    • 2022-12-31
    • 2014-07-25
    相关资源
    最近更新 更多