我正在尝试为文本游戏编写实时战斗系统。我希望玩家能够采取行动,并且必须等待几秒钟才能够再次采取行动,而NPC也同样如此。在Python中重用线程
我写了一个小例子:
import threading
import time
def playerattack():
print("You attack!")
time.sleep(2)
def npcattack():
while hostile == True:
print("The enemy attacks!")
time.sleep(3)
p = threading.Thread(target=playerattack)
n = threading.Thread(target=npcattack)
hostile = False
while True:
if hostile == True:
n.start()
com = input("enter 'attack' to attack:")
if 'attack' in com:
hostile = True
p.start()
的例子将正常工作的第一次进攻: 我进入“攻击”,敌对的标志被设置为True,全国人大攻击线程开始,但是当我再次尝试攻击时,我得到了'RuntimeError:线程只能启动一次'。
有没有办法重用该线程,而不会引发错误?或者,我是否全力以赴?
是的。你最好不用线程编写这些东西。 – pvg
你能解释一个橡皮鸭为什么你需要这个例子的线程? – zwer
你不能直接在python中杀死一个线程,但是你可以在多线程中处理线程。你可能正在使用线程来学习如何使用它们。 – thesonyman101