python - 在pygame中检测键盘输入时只有某些键起作用

如果我在我的 PC 上运行代码,pygame 中的键盘事件处理工作正常,但如果我在 Windows 虚拟环境中运行相同的代码,则不会。只有一些键有效?!?

如果我在 Windows 虚拟机中从 python 或 pycharm 运行相同的代码(这是我和我的学生唯一的选择),那么只有某些键可以工作!!!

出于某种原因,我可以检测和处理箭头键、空格键等,但基本键“w”“a”“s”“d”都不起作用。他们的程序只是坐在那里,就像我没有按下键一样。

正如我所说,如果我在家里的电脑上运行代码,它可以正常工作。

显然这是虚拟环境的问题。有谁知道这是否是一个已知问题?是否与 python 或 pygame 的安装不正确有关?我卡住了!

if event.type == pygame.KEYDOWN:
    if event.key == pygame.K_w:
        print('Forward')
    elif event.key == pygame.K_s:
        print('Backward')…
    elif event.key == pygame.K_SPACE:
        print('SPACE')…

在我的 PC 上运行良好,但在虚拟环境中运行不佳。

我希望代码在两者上以相同的方式工作吗?

最佳答案

你最好这样做:

keys = pygame.key.get_pressed() # this returnes a dictionary of keys

if keys[pygame.K_w]: # if "w" was pressed
    [...]

希望这能奏效

https://stackoverflow.com/questions/58038325/

相关文章:

r - ChordDiagram 切断长标签

php - 尽管使用了有效 key ,Gnupg 仍给出 "get_key failed"

gitlab - 任何人都可以发布具有外部子模块的 GitLab CI 的工作示例吗?

c++ - 配置:错误:C++ 预处理器 "/lib/cpp"完整性检查失败

regex - 如何按名称访问捕获组?

php - 自定义集合操作和IRI转换问题

reactjs - 在 Kafka 上 react GUI

html - 有没有一种方法可以确保在 print 语句中使用 kable 表时 unicode 符

ios - 使用 `xcodebuild` 归档时 CompileSwift 正常 arm64

jenkins - 如何在参数化的 Jenkins 管道项目中检索作业名称