Python 在pygame中检测键盘输入时,仅某些键起作用

Python 在pygame中检测键盘输入时,仅某些键起作用,python,pygame,Python,Pygame,如果我在PC上运行代码,pygame中的键盘事件处理可以正常工作,但如果我在windows虚拟环境中运行相同的代码,则不能正常工作。只有一些钥匙能用 如果我在windows虚拟机中运行python或pycharm中的相同代码(这是我对学生唯一的选择),那么只有某些键可以工作 出于某种原因,我可以检测和处理箭头键、空格等,但基本键“w”“a”“s”“d”都不起作用。他们只是坐在那里,表现得好像我没有按键 正如我所说的,如果我在家里的电脑上运行代码,它就可以正常工作 显然,这是虚拟环境的一个问题。有

如果我在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')…
在我的电脑上可以正常工作,但在虚拟环境中不行


我希望代码在这两个方面都能以相同的方式工作?

您最好这样做:

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

if keys[pygame.K_w]: # if "w" was pressed
    [...]
希望这能奏效

你好,里德同志。如何处理循环结束时的事件队列?我不确定vm设置,但这可能相关吗?