我正在使用Pygame编写Mario编码,我现在正在编码块。我想制作一个计时器,所以当我在一秒钟之后击中该块时,该块会回到其原始位置以进行击中动画。问题是当计时器进入睡眠状态时,它会在计时器的整个过程中冻结整个游戏。我需要运行代码,然后在第二个代码块之后运行。
我曾尝试使用睡眠来制作计时器,但它会冻结整个游戏。任何人都可以给我一些知识吗?谢谢!
我建议你使用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()
from threading import Timer
def timeout():
# do your stuff here
t = Timer(number_of_seconds, timeout)
t.start()