Pygame - 键盘事件
Pygame 识别 KEYUP 和 KEYDOWN 事件。 pygame.key 模块定义了对处理键盘交互有用的函数。 当按键被按下和释放时,pygame.KEYDOWN 和 pygame.KEYUP 事件被插入到事件队列中。 key 属性是代表键盘上每个键的整数 ID。
import pygame, sys pygame.init() screen = pygame.display.set_mode((640, 480)) pygame.display.set_caption("Hello World") while True: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() if event.type == pygame.KEYDOWN: key=pygame.key.name(event.key) print (key, "Key is pressed") if event.type == pygame.KEYUP: key=pygame.key.name(event.key) print (key, "Key is released")
运行上面的代码并在 Pygame 窗口处于活动状态时按各种键。 以下是 Python 控制台上的示例输出。
q Key is pressed q Key is released right shift Key is released 1 Key is pressed 1 Key is released enter Key is pressed enter Key is released backspace Key is pressed backspace Key is released x Key is pressed x Key is released home Key is pressed home Key is released f1 Key is pressed f1 Key is released left Key is pressed left Key is released right Key is pressed right Key is released up Key is pressed up Key is released down Key is pressed down Key is released
如我们所见,event.key 属性返回与每个键关联的唯一标识符。 左、右、上、下箭头键在游戏中经常使用。 如果检测到特定的按键按下,我们可以正确处理适当逻辑。
下面列出了pygame.key模块中其他有用的属性 −
pygame.key.get_pressed | 获取所有键盘按键的状态 |
pygame.key.get_mods | 确定哪些修饰键被按住 |
pygame.key.set_repeat | 控制如何重复按住键 |
pygame.key.get_repeat | 获取重复按住的键 |
pygame.key.name | 获取一个key标识符的名称 |
pygame.key.key_code | 根据键名获取key标识符 |
pygame.key.start_text_input | 开始处理Unicode文本输入事件 |
pygame.key.stop_text_input | 停止处理 Unicode 文本输入事件 |