2016-05-06 68 views
-2

我使用Python和Tkinter創建遊戲。當遊戲結束時,我試圖顯示「遊戲結束」,我把它作爲一個圖像插入,然後幾秒鐘後,我想要另一個圖像。我試圖把time.sleep(2)置於其間,但它沒有奏效,它在比賽結束後立即停止。如何延遲沒有time.sleep?

+4

你能粘貼代碼嗎? –

+1

看看tkinter'後'函數http://effbot.org/tkinterbook/widget.htm#Tkinter.Widget.after-method –

+0

你有沒有嘗試過'master'上的'update()'方法.sleep(2)'語句? – ZbyszekKr

回答

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() 
+0

這似乎並不奏效。遊戲結束時,我在屏幕上創建了一張圖片,之後我需要它創建另一張圖片。我確實嘗試過「之後」,但想在第一次之後結束它,但我認爲它沒有處理它。對不起,我還是個初學者。 –