我正在制作一个蛇游戏,它要求玩家在WASD
不停止游戏进程的情况下按下按键来获取玩家的输入。所以我不能input()
用于这种情况,因为这样游戏就会停止滴答作响以获取输入。
我发现了一个getch()
无需按回车即可立即提供输入的功能,但此功能也会停止游戏滴答以获取类似input()
. 我决定使用线程模块通过getch()
不同的线程获取输入。问题是 getch() 在不同的线程中不起作用,我不知道为什么。
import threading, time
from msvcrt import getch
key = "lol" #it never changes because getch() in thread1 is useless
def thread1():
while True:
key = getch() #this simply is almost ignored by interpreter, the only thing it
#gives is that delays print() unless you press any key
print("this is thread1()")
threading.Thread(target = thread1).start()
while True:
time.sleep(1)
print(key)
那么为什么getch()
在它的时候没用thread1()
呢?