【问题标题】:How do I add an on screen timer to my game?如何在我的游戏中添加屏幕计时器?
【发布时间】:2020-04-28 16:07:08
【问题描述】:

所以我正在制作一款游戏,我希望能够计算完成所需的时间并将其显示在我正在使用的窗口中。我遇到的问题是,一旦代码进入循环,它就会卡在那里,而不是同时运行计时器和游戏。我试过做一些研究并使用线程让它们同时运行,但每次我尝试它冻结并且我必须终止程序。关于如何做到这一点的任何想法?

从 tkinter 导入 * 进口时间

root = Tk()

timer = Label(root, text="0", width=100, height=100)
timer.pack()

def new_game():
    # a bunch of game code
    start_timer()


def start_timer():
    timer_time = 0
    while timer_time <= 999:
        time.sleep(1)
        timer.config(text=str(timer_time))


new_game()

root.mainloop()

【问题讨论】:

  • 不要使用while循环和sleep()。使用after()

标签: tkinter timer stopwatch


【解决方案1】:

多次使用 after() 而不是 sleep()while

import tkinter as tk # `import *` is not preferred
import time

# --- function ---

def update_timer():
    global timer_time

    #timer['text'] = time.strftime('%H:%M:%S')
    timer['text'] = str(timer_time)
    timer_time += 1

    if timer_time <= 999:
        root.after(1000, update_timer) # 1000ms = 1s

# --- main ---

timer_time = 0

root = tk.Tk()

timer = tk.Label(root, width=10)
timer.pack()

update_timer()

root.mainloop()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-09
    • 1970-01-01
    • 2019-09-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多