我正在使用Python 3进行游戏,我遇到了一些代码问题。我想要做的是让一个计时器在后台运行。玩家会输入一个答案来做什么。如果玩家在计时器结束前回答,则计时器将停止。如果玩家在计时器结束前没有给出答案,那么他们就输了。除了计时器耗尽和游戏结束之外,我正在考虑三种可能的行动方案。如果您从自己以外的来源获取信息,请留下链接到源。所有回复都表示赞赏。 编辑:我可以做的最接近的比较是视频游戏中的快速时间事件。
答案 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()
实际上,您可以将打印语句替换为您想要执行的任何操作。您还可以添加倒计时标签,并留出时间来回答。