如何在 Pygame 中将按下的特定键打印到控制台?

问题描述

我被困在这个问题上。我试图将按下的特定键输出到控制台,但此时所有按下的键都输出“2”。将不胜感激!

import pygame
pygame.init()

s = pygame.display.set_mode((640,480))

running = True
while running:
    for e in pygame.event.get():
        if e.type == pygame.QUIT: #The user closed the window!
            running = False #Stop running
    # Logic goes here

        if e.type == pygame.KEYDOWN:
            print(e.type)

pygame.quit()

解决方法

您正在打印事件类型 (KEYDOWN),因此您始终获得相同的输出。

键盘事件 KEYDOWNKEYUP(参见 pygame.event 模块)创建一个带有附加属性的 pygame.event.Event 对象。按下的键可以从 key 属性(例如 K_RETURN K_a)获得,mod 属性包含一个带有附加修饰符的位集(例如 {{1} })。 KMOD_LSHIFT 属性提供键盘输入的 Unicode 表示。
可以通过 pygame.key.name():

获取密钥的用户友好名称
unicode