2024-10-05 21:53:29 发布
网友
在Python的time模块中,有一个sleep()函数,可以让Python在恢复程序之前等待x秒。有没有办法无限期地这样做,直到满足某个条件?例如:
sleep()
while True: time.sleep() if x: break time.unsleep()
我正在尝试为我的PyGame程序创建一个暂停函数。如有任何帮助,我们将不胜感激。
像这样的:
while not x: time.sleep(0.1)
将等到x为真,在检查之间睡眠十分之一秒。这通常足够短,当x变为真时,您的脚本似乎可以立即(用人类的术语)做出反应。如果不够快,可以使用0.01。以我的经验,今天的计算机足够快,即使每百分之一秒检查一个简单的条件也不会真正减少CPU的使用。
x
0.01
当然,x应该是可以实际更改的内容,例如函数调用。
这个问题中的代码意味着您希望其他线程继续您的程序。在这种情况下,您可以使用^{}。您可以在一个线程中创建它并将其传递到另一个线程:
while not resumed.wait(): # wait until resumed "continue waiting"
调用resumed.set()立即恢复此代码。
resumed.set()
I am trying to make a pause function for my PyGame program. Any help is appreciated.
使用^{}。通常,在主循环中更新游戏状态,在循环结束时调用clock.tick(60) # 60 fps。在这种情况下,使用paused标志就足够了,可以跳过更新。
clock.tick(60) # 60 fps
paused
像这样的:
将等到
x
为真,在检查之间睡眠十分之一秒。这通常足够短,当x
变为真时,您的脚本似乎可以立即(用人类的术语)做出反应。如果不够快,可以使用0.01
。以我的经验,今天的计算机足够快,即使每百分之一秒检查一个简单的条件也不会真正减少CPU的使用。当然,
x
应该是可以实际更改的内容,例如函数调用。这个问题中的代码意味着您希望其他线程继续您的程序。在这种情况下,您可以使用^{} 。您可以在一个线程中创建它并将其传递到另一个线程:
调用
resumed.set()
立即恢复此代码。使用^{} 。通常,在主循环中更新游戏状态,在循环结束时调用
clock.tick(60) # 60 fps
。在这种情况下,使用paused
标志就足够了,可以跳过更新。相关问题 更多 >
编程相关推荐