我正在嘗試爲文本遊戲編寫實時戰鬥系統。我希望玩家能夠採取行動,並且必須等待幾秒鐘才能夠再次採取行動,而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