我需要一个游戏循环,直到一分钟结束。我已经搜索过了,我发现了这个:
t_end = time.time() + 60
while time.time() < t_end:
#blah blah blah
但是这个循环将运行一分钟,然后完成它在上的循环。我需要为我的游戏设置一个循环,一旦时间用完就会停止,这样人就不会在循环结束之前再次猜测。
答案 0 :(得分:-1)
也许您想要的只是检查用户是否已闲置一分钟。你不能用独立的定时循环来做到这一点,因为你的程序的其余部分无法响应超时,除非你使用多个线程(你可能不想这样做)。在单线程程序中,您必须将时间检查与其余逻辑混合,例如(伪代码):
last_user_action = time.time()
while True:
if user_did_something():
last_user_action = time.time()
else:
if time.time() - 60.0 > last_user_action:
break
blah_blah_blah() # You must keep this fairly short
sys.exit(1)
如果你的函数blah_blah_blah足够短,那么它可以正常工作。如果不是,您必须弄清楚如何编写多线程或事件驱动的应用程序。 Tkinter或任何GUI环境都具有必要的功能。
答案 1 :(得分:-3)
您需要在for循环中进行检查才能打破它。
import time
t_end = time.time() + 60
while time.time() < t_end:
if time.time() >= t_end:
break
else:
#blah blah blah
大于条件将确保在循环开始时间和检查时间之间时钟滴答足以使time.time()
大于t_end
的条件下,我们仍然会打破循环。 if statement。