Python Pygame只检测鼠标事件,不检测按键事件

Python Pygame只检测鼠标事件,不检测按键事件,python,pygame,Python,Pygame,我已经编写了以下简单的程序,它应该打印出由pygame.event.get()检测到的所有事件 但当我运行这个程序时,我只有鼠标事件,当我点击caps lock两次时,会有一个KEYDOWN和KEYUP事件,并在终端中打印出来。当我使用任何其他键时,它们只打印到终端,就像我在终端窗口中写字一样 <Event(4-MouseMotion {'pos': (102, 15), 'buttons': (0, 0, 0), 'rel': (-197, -284)})> <Event(

我已经编写了以下简单的程序,它应该打印出由
pygame.event.get()
检测到的所有事件

但当我运行这个程序时,我只有鼠标事件,当我点击caps lock两次时,会有一个KEYDOWN和KEYUP事件,并在终端中打印出来。当我使用任何其他键时,它们只打印到终端,就像我在终端窗口中写字一样

<Event(4-MouseMotion {'pos': (102, 15), 'buttons': (0, 0, 0),
 'rel': (-197, -284)})>
<Event(2-KeyDown {'unicode': '', 'scancode': 0, 'key': 301, 'm
 od': 8192})>
<Event(3-KeyUp {'key': 301, 'scancode': 0, 'mod': 0})>
wasd

wasd
我正在使用MacOSX10.12.1、Python3.5.2和PyGame1.9.4.dev0


我想我直接遗漏了什么,但我在网上找不到类似的东西。任何帮助都将不胜感激

首先,我怀疑你是,但pygame只在你专注于pygame屏幕时才注册输入,就是这样。很抱歉,我对你的问题没有直接的答案,但我有我的解决方案或正在努力解决这个问题。因为我不喜欢普通的事件系统,所以我使用pygame.key.get_pressed()(),只是因为我觉得它看起来更好、更可读。这可能只是我的一个坏习惯,尽管如此….

如果您在virtualenv中工作,请不要使用
virtualenv
命令

使用
python3-m-venv

然后安装pygame(例如
pip3安装hg+http://bitbucket.org/pygame/pygame


有关此问题的更多详细信息,请参阅。

对于仍在努力解决此问题的任何人,此问题将记录在git上并已修复。

只需从venv卸载pygame,然后安装以下版本

pip install -U https://github.com/pygame/pygame/archive/master.zip

刚刚尝试过这个,终于可以在pygame中使用关键事件了。

您的代码适用于Python 3.5.2和pygame 1.9.3。箭头键,WASD,一切。可能是1.9.4dev0中引入了一些bug,但我对此表示怀疑。对我来说,这似乎是一个焦点问题。您使用的是什么操作系统和窗口管理器?我使用的是当前的OSX,我将降级到该版本,看看是否有帮助。谢谢。我使用的是Linux,可能会有所不同。我想用你的版本试试,但它既不在PyPI上,也不在他们的Bitbucket上。我从哪里获得
1.9.4.dev0
?不,我已经卸载了pygame 1.9.3,然后安装了它,我遇到了同样的问题。我发现检测到caps锁很奇怪。找到了一些东西。看这个:这个:在搜索了大约一个小时后,这就是问题所在!非常感谢。
pip install -U https://github.com/pygame/pygame/archive/master.zip