【发布时间】:2022-11-03 09:40:18
【问题描述】:
我用在终端中运行的 python 编写了一个小游戏,输入在 Windows 上运行但不在 Linux 上运行我使用的是(我认为)应该跨平台运行的 pynput。
这是我用来获取输入的代码:
from pynput import keyboard
def getInput():
with keyboard.Events() as events:
event = events.get(1.0)
if '{}'.format(event) == "Press(key=Key.up)" and inputKey[0]==False:
inputKey[0]=True
elif'{}'.format(event) == "Press(key=Key.right)" and inputKey[1]==False:
inputKey[1]=True
elif '{}'.format(event) == "Press(key=Key.down)" and inputKey[2]==False:
inputKey[2]=True
elif '{}'.format(event) == "Press(key=Key.left)" and inputKey[3]==False:
inputKey[3]=True
elif '{}'.format(event) == "Press(key='r')" and inputKey[4]==False:
inputKey[4]=True
elif '{}'.format(event) == "Press(key='q')" and inputKey[5]==False:
inputKey[5]=True
我试图测试的内容:
from pynput import keyboard
def getInput():
with keyboard.Events() as events:
event = events.get(1.0)
print('{}'.format(event))
【问题讨论】:
-
您的示例代码在 Linux 下对我来说运行得很好。你能告诉我们更多关于你是如何运行它的吗?
-
我在 Ubuntu 上,我只是用命令运行它:'python3 test.py',然后我在一个 while 循环中调用该方法。
-
那么你怎么知道它不起作用呢?您的程序是否打印任何内容让您知道它正在运行?
-
该程序确实在windows和linux上运行,但是当有某个输入时它应该做一些事情,这在windows上工作正常,但在linux上它只输出输入的键,例如如果按下了a如果按下了像 [[A