2016-05-06 67 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

这似乎并不奏效。游戏结束时,我在屏幕上创建了一张图片,之后我需要它创建另一张图片。我确实尝试过“之后”,但想在第一次之后结束它,但我认为它没有处理它。对不起,我还是个初学者。 –