如何在python中创建一个计时器而不冻结整个代码

问题描述 投票:1回答:2

我正在使用Pygame编写Mario编码,我现在正在编码块。我想制作一个计时器,所以当我在一秒钟之后击中该块时,该块会回到其原始位置以进行击中动画。问题是当计时器进入睡眠状态时,它会在计时器的整个过程中冻结整个游戏。我需要运行代码,然后在第二个代码块之后运行。

我曾尝试使用睡眠来制作计时器,但它会冻结整个游戏。任何人都可以给我一些知识吗?谢谢!

python timer pygame sleep
2个回答
2
投票

我建议你使用threading模块和线程两个函数。

最后,您可以这样格式化:

from threading import Thread
if __name__ == '__main__':
    Thread(target = game()).start()
    Thread(target = timer()).start()

另一种选择是timeit模块。您可以设置计时器并使用if / while语句检查特定时间。

第三个选项是您用于睡眠的时间模块:

import time

max_time = #the time you want
start_time = time.time()
while (time.time() - start_time) < max_time:
    game()

1
投票
from threading import Timer

def timeout():
    # do your stuff here

t = Timer(number_of_seconds, timeout)
t.start()
© www.soinside.com 2019 - 2024. All rights reserved.