Python:在Tkinter中非阻塞定时器

3 投票
1 回答
1021 浏览
提问于 2025-04-18 02:48

我正在做一个项目,想要编写一个炸弹人游戏。我使用的是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 循环和串行写入

撰写回答