有没有办法从用户输入读取一个单个字符?例如,他们在终端按一个键然后返回(有点像getch()).我知道Windows中有一个功能,但我想要一些跨平台的功能.
我是Python的新手,我只是用Python创建了一个游戏和一个菜单.问题是,使用(raw_)input()要求我在每次按键后按Enter键,我想按下向下箭头将立即选择下一个菜单项,或者在游戏中向下移动.目前,它需要我喜欢键入"向下"然后按Enter键.我也做了很多研究,但我不想下载大型模块(例如pygame)来实现单个keyDown()方法.那么有什么更简单的方法,我找不到?
编辑:
刚刚发现可以解决这个问题msvcrt.getch().它不是keyDown(),但它有效.但是,我不知道如何使用它,这看起来很奇怪,这里有什么帮助吗?这就是我现在所得到的:
from msvcrt import getch
while True:
key = getch()
print(key)
Run Code Online (Sandbox Code Playgroud)
但是,它一直给我所有这些无意义的字节,例如,向下箭头是这样的:
b'\xe0'
b'P'
Run Code Online (Sandbox Code Playgroud)
我不知道如何使用它们,我试图与chr()进行比较,甚至使用ord(),但不能真正进行任何比较.我想要做的基本上是这样的:
from msvcrt import getch
while True:
key = getch()
if key == escape:
break
elif key == downarrow:
movedown()
elif key == 'a':
...
Run Code Online (Sandbox Code Playgroud)
等等......有什么帮助吗?