在Python的时间模块中,有一个sleep()
函数,你可以让Python在恢复程序之前等待x秒。有没有办法在条件满足之前无限期地执行此操作?例如:
while True:
time.sleep()
if x:
break
time.unsleep()
我正在尝试为我的PyGame程序制作暂停功能。任何帮助表示赞赏。
答案 0 :(得分:3)
您在问题中的代码意味着您希望其他一些线程恢复您的程序。在这种情况下,您可以使用resumed = threading.Event()
。您可以在一个线程中创建它并将其传递给另一个线程:
while not resumed.wait(): # wait until resumed
"continue waiting"
致电resumed.set()
立即恢复此代码。
我正在尝试为我的PyGame程序制作暂停功能。任何帮助表示赞赏。
使用pygame.time
。通常情况下,您有主循环来更新游戏状态,并在循环结束时调用clock.tick(60) # 60 fps
。在这种情况下,使用paused
标志就足以跳过更新。
答案 1 :(得分:2)
这样的事情:
while not x: time.sleep(0.1)
将等到x
为真,在检查之间休息十分之一秒。这通常足够短,以便当x
变为真时,您的脚本似乎立即(以人类的方式)做出反应。如果速度不够快,您可以使用0.01
。根据我的经验,今天的计算机足够快,即使每百分之一秒检查一个简单的条件也不能真正削弱CPU的使用率。
当然,x
应该是可以实际改变的东西,例如一个函数调用。