我正在嘗試為一個簡單的游戲制作一個模式,您可以在其中使用 tkinter 在物品掉落時捕捉它們。
在這種模式下,您有 60 秒的時間捕捉盡可能多的物品。我嘗試過的所有計時器方法都會暫停整個程式
...嘗試使用空標簽,但 .after 暫停整個程式
timerlabel = tkinter.Label(text="")
def timer():
global t, timerdisplay
while t > 0:
t -= 1
timerlabel.after(1000)
c.delete(timerdisplay)
timerdisplay = c.create_text(200, 12, text=t)
c.update()
知道怎么做嗎?
uj5u.com熱心網友回復:
這是更好的方法,特別是因為after(n)在給定的時間段內凍結程式。創建一個接受數字并顯示該數字的函式。然后,它減一,然后重新安排自己在未來運行一秒鐘,直到數字變為零。
def timer(t):
global timerdisplay
c.delete(timerdisplay)
timerdisplay = c.create_text(200, 12, text=t)
if t >= 1:
c.after(1000, timer, t-1)
timer(timerdisplay, 10)
為了優化這一點,您可以將畫布專案與數字一起傳遞。您也可以只重新配置文本項,而不是洗掉和恢復它。
def timer(timerdisplay, t):
c.itemconfigure(timerdisplay, text=t)
if t >= 1:
c.after(1000, timer, timerdisplay, t-1)
timerdisplay = c.create_text(200, 12)
timer(timerdisplay, 10)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/407821.html
標籤:
上一篇:Tkinter視頻播放串列
