如何在没有时间的情况下延迟睡觉?

时间:2016-05-06 14:54:34

标签: python time tkinter sleep

我正在使用Python和Tkinter来创建游戏。当游戏结束时,我正在尝试显示“Game Over”,我将其作为图像插入,然后在几秒钟后我想要放置另一张图像。我试图将time.sleep(2)置于其间,但它没有奏效,它在游戏结束后立即停止。

1 个答案:

答案 0 :(得分:2)

不要思考"延迟",思考"安排"。你可以创建"游戏"屏幕像正常一样,并使用after来安排一些操作。这允许GUI继续响应事件。

以下示例销毁"游戏结束"窗口在两秒钟内,但您可以轻松地换掉图像,更改文本,更改颜色等。

import Tkinter as tk

def gameover():
   top = tk.Toplevel(root)
   label = tk.Label(top, text="Game over!")
   label.pack(padx=20, pady=20, expand=True)
   top.after(2000, top.destroy)

root = tk.Tk()
button = tk.Button(root, text='Click to simulate "game over"', command=gameover)
button.pack(padx=20, pady=20)

root.mainloop()