我正在尝试在基于文本的冒险游戏中设置一个计时器,以便每过一秒钟,用户就会离开1 hp, 在特定情况下 >和仍然可以使用其他功能。这是我的代码:
#Imports and base variables
import time
import threading
import random
hp=100 #Health
p="snow" #Starting point
invtry=[] #Inventory of Character
#Function to drop health
def hlthdrp():
hp-1
t=threading.Timer(1.0,hlthdrp)
t.start()
while p=="snow" or p=="Snow":
if hp==0 and p=="snow" or p=="Snow":
print ("You died of frostbite")
t.cancel()
threading.wait(timeout=5.0)
截至目前,我还没有收到任何错误,而是一个完全空白的外壳或终端。如果有人可以帮助,那就太好了!
答案 0 :(得分:0)
您必须调用threading.Timer递归,否则只能调用一次
您可以使用lower()函数比较积雪或某些字符串
有您的固定代码,希望对您有用。
def hlthdrp():
global hp
print(hp)# just for testing
hp=hp-1
if hp!=0:
threading.Timer(1, hlthdrp).start()
hlthdrp()
while p.lower()=="snow":
if hp==0 :
print ("You died of frostbite")
elif hp!=0 :
pass