如何在设定的毫秒数后执行一些代码?
我只想执行一次。
由于
答案 0 :(得分:2)
有pygame.time.set_timer(eventid, milliseconds)
函数,它每隔eventid
毫秒在事件队列上生成一个id为milliseconds
的事件,然后您可以随意处理。您可以通过调用pygame.time.set_timer(eventid, 0)
来停止再次生成事件。
SDL有一个SDL_AddTimer
函数可以完全按照你的意愿运行 - 你传递一个回调函数,在一段时间后执行,但是从文档中我找不到pygame
等价物
对于python解决方案,您可以使用threading.Timer
类。
答案 1 :(得分:1)
只需查看模块sched — Event scheduler即可。链接中的示例非常简洁,可以帮助您入门
答案 2 :(得分:0)
对于python解决方案,setTimeout等效于:
import threading
def set_timeout(func, sec):
t = None
def func_wrapper():
func()
t.cancel()
t = threading.Timer(sec, func_wrapper)
t.start()
def hello():
print "Hello, world!"
set_timeout(hello, 0.1) # This is 0.1s = 100ms