python - Pygame只检测鼠标事件,不检测KEYDOWN事件

标签 python pygame

我编写了以下简单程序,它应该打印出 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。

我想我直接遗漏了一些东西,但我在网上找不到任何类似的东西。任何帮助将非常感激。

最佳答案

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

使用 python3 -m venv

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

参见 this thread有关此问题的更多详细信息。

关于python - Pygame只检测鼠标事件,不检测KEYDOWN事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42512141/

相关文章:

python - 合并重叠的数字范围

python - 使用列表和切片

python - 在 GitHub Actions CI 中运行 testcontainers-python

python - 从 tkinter 创建新的 ttk 小部件

python - Pygame:绘制矩形的奇怪行为

python - 为什么我们需要在 surface.blit() 之后进行 display.update() 操作?

python - 如何在Python 3.7中使用Pygame显示用Pillow加载的图像?

python - 机器学习中的步长和学习率有什么区别?

python - 如何根据用户最后输入的键更改角色的图像?

python - 当我制作一个 pygame 游戏并将鼠标悬停在它上面时,光标变成正在加载的东西