【问题标题】:Pygame only detects mouse events, does not detect KEYDOWN eventsPygame只检测鼠标事件,不检测KEYDOWN事件
【发布时间】: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,我遇到了同样的问题。我发现检测到大写锁定很奇怪。
  • 找到了一些东西。看到这个:stackoverflow.com/questions/2718897/… 和这个:bitbucket.org/pygame/pygame/issues/203/…

标签: python pygame


【解决方案1】:

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

使用python3 -m venv

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

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

【讨论】:

  • 搜索了大约一个小时后,这就是问题所在!谢谢!
【解决方案2】:

对于仍在为此苦苦挣扎的任何人,此问题已在 git 上记录并已修复。 https://github.com/pygame/pygame/issues/203

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

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

刚刚试了一下,终于可以在pygame中使用关键事件了。

【讨论】:

    【解决方案3】:

    首先我怀疑你是,但是当你专注于 pygame 屏幕时,pygame 只会注册输入,所以就是这样。我没有直接回答你的问题很抱歉,但我确实有我的解决方案或解决它。因为我不喜欢正常的事件系统,所以我使用 pygame.key.get_pressed() (https://www.pygame.org/docs/ref/key.html) 只是因为我认为它看起来更好、更具可读性。这可能只是我的一个坏习惯,虽然sooo.....

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-28
      • 2023-03-10
      • 2014-03-19
      • 2014-11-14
      • 1970-01-01
      • 2021-03-07
      • 2018-10-06
      • 1970-01-01
      相关资源
      最近更新 更多