Python 3 Timed If,Then,Else Statement

时间:2015-12-09 04:33:20

标签: python-3.x timer

我正在使用Python 3进行游戏,我遇到了一些代码问题。我想要做的是让一个计时器在后台运行。玩家会输入一个答案来做什么。如果玩家在计时器结束前回答,则计时器将停止。如果玩家在计时器结束前没有给出答案,那么他们就输了。除了计时器耗尽和游戏结束之外,我正在考虑三种可能的行动方案。如果您从自己以外的来源获取信息,请留下链接到源。所有回复都表示赞赏。 编辑:我可以做的最接近的比较是视频游戏中的快速时间事件。

1 个答案:

答案 0 :(得分:0)

您要等到两个事件中的一个发生:用户输入答案或超时到期。在没有带有超时参数的input()的情况下,使用tkinter最容易做到这一点。这是一个最小的例子。

import tkinter as tk

root = tk.Tk()

def timeout_cb():
    answer.unbind('<Key-Return>')  # disable answer entry
    print('timed out')

def answer_cb(event):
    root.after_cancel(time_id)  # disable timeout timer
    print('you answered', answer.get())

prompt = tk.Label(root, text='Name?')
answer = tk.Entry(root)
prompt.grid(row=0, column=0)
answer.grid(row=0, column=1)
answer.focus_set()
answer.bind('<Key-Return>', answer_cb)
time_id = root.after(10000, timeout_cb)  # 10 seconds

root.mainloop()

实际上,您可以将打印语句替换为您想要执行的任何操作。您还可以添加倒计时标签,并留出时间来回答。