플레이어로부터 입력을 얻기 위해 게임 프로세스를 중단하지 않고 플레이어가 WASD
키를 누르라는 스네이크 게임을 만들고 있습니다. 그래서 나는이 상황을 위해 input()
을 사용할 수 없습니다. 게임이 입력을 얻기 위해 똑딱 거리지 않기 때문입니다.스레드를 사용하여 파이썬 3에서 키보드 입력을 얻는 방법?
Enter를 누르지 않고 즉시 입력을 제공하는기능을 찾았지만 input()
과 같은 입력을 얻으려면 게임 감추기도 중지하십시오. 다른 스레드에서 getch()
을 통해 입력을 얻으려면 스레딩 모듈을 사용하기로 결정했습니다. 문제는 다른 스레드에서 getch()가 작동하지 않고 이유가 확실하지 않다는 것입니다. thread1()
에이를 때
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()
쓸모가?
. 그것은 키보드에서 눌려지고있는 키를 쉽게 알 수 있도록 해주는 함수를 가지고있어서 쓰레드로 돌아 다닐 필요가 없습니다. – Michael0x2a