【发布时间】:2017-02-28 15:01:39
【问题描述】:
我编写了以下简单程序,它应该打印出pygame.event.get() 检测到的所有事件。
import pygame, sys
from pygame.locals import *
display = pygame.display.set_mode((300, 300))
pygame.init()
while True:
for event in pygame.event.get():
print(event)
if event.type == QUIT:
pygame.quit()
sys.exit()
但是当我运行它时,我只有鼠标事件,以及当我两次按下大写锁定时的 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
我正在使用 Mac OSX 10.12.1、python 3.5.2 和 pygame 1.9.4.dev0。
我想我错过了一些直接的东西,但我在网上找不到类似的东西。任何帮助将非常感激。
【问题讨论】:
-
您的代码适用于我的 Python 3.5.2 和 Pygame 1.9.3。方向键,WASD,一切。可能是 1.9.4dev0 中引入的一些错误,但我对此表示怀疑。对我来说似乎是一个窗口焦点问题。您使用的是什么操作系统和窗口管理器?
-
我在当前的 OSX 上,我会降级到那个版本,看看它是否有帮助。谢谢。
-
我在 Linux 上,可能会有所不同。我会用你的版本试试,但它不在 PyPI 上,也不在他们的 Bitbucket 上。我在哪里可以得到
1.9.4.dev0? -
不,我已经卸载,然后安装了 pygame 1.9.3,我遇到了同样的问题。我发现检测到大写锁定很奇怪。