Python:在Tkinter中非阻塞定时器
我正在做一个项目,想要编写一个炸弹人游戏。我使用的是Pyzo软件,编程语言是Python,还有Tkinter这个库。现在我遇到的问题是,我需要给炸弹设置一个计时器,比如说我放下一个炸弹,3秒后它就会爆炸。
我尝试了很多方法,比如使用.after、时间模块(time.sleep)和循环。但是每次结果都是一样的,窗口会卡住,我无法移动角色,等到循环结束后,屏幕才会刷新,玩家才会移动到新的位置。
请问我该怎么做才能让我的炸弹在3秒后正常爆炸呢?谢谢!
1 个回答
2
你可以使用
widget.after(milliseconds, function, *arguments)
来让 function(*arguments)
在几毫秒后被调用。如果这个函数不需要任何参数,可以用 widget.after(milliseconds, function)
。如果需要一个参数,可以用 widget.after(milliseconds, function, arg1)
,以此类推。
widget
可以是 Tk()
、Canvas()
、Frame()
、Label()
等对象。
如果你对循环感兴趣,可以看看这个链接:tkinter 循环和串行写入