有谁知道如何捕捉游戏的击键(即使用键盘导航一个简单的基于 ascii 的游戏,其中 8 = 向上、2 = 向下、向左 4 等......并且不需要按回车键,只需一次击键即可移动是目标。)?我找到了这段代码,这看起来是个好主意,但我想不通。添加评论,或将我发送到有关该主题的文章等,将有很大帮助。我知道很多人都有这个问题。提前致谢?
try:
from msvcrt import kbhit
except ImportError:
import termios, fcntl, sys, os
def kbhit():
fd = sys.stdin.fileno()
oldterm = termios.tcgetattr(fd)
newattr = termios.tcgetattr(fd)
newattr[3] = newattr[3] & ~termios.ICANON & ~termios.ECHO
termios.tcsetattr(fd, termios.TCSANOW, newattr)
oldflags = fcntl.fcntl(fd, fcntl.F_GETFL)
fcntl.fcntl(fd, fcntl.F_SETFL, oldflags | os.O_NONBLOCK)
try:
while True:
try:
c = sys.stdin.read(1)
return True
except IOError:
return False
finally:
termios.tcsetattr(fd, termios.TCSAFLUSH, oldterm)
fcntl.fcntl(fd, fcntl.F_SETFL, oldflags)