- Pygame 教程
- Pygame - 主页
- Pygame - 概述
- Pygame - 你好世界
- Pygame - 显示模式
- Pygame - 本地模块
- Pygame - 颜色对象
- Pygame - 事件对象
- Pygame - 键盘事件
- Pygame - 鼠标事件
- Pygame - 绘制形状
- Pygame - 加载图像
- Pygame - 在窗口中显示文本
- Pygame - 移动图像
- Pygame - 使用数字键盘移动
- Pygame - 用鼠标移动
- Pygame - 移动矩形对象
- Pygame - 使用文本作为按钮
- Pygame - 转换图像
- Pygame - 声音对象
- Pygame - 混合器通道
- Pygame - 播放音乐
- Pygame - 玩电影
- Pygame - 使用相机模块
- Pygame - 加载光标
- Pygame - 访问 CDROM
- Pygame - 精灵模块
- Pygame - PyOpenGL
- Pygame - 错误和异常
- Pygame 有用资源
- Pygame - 快速指南
- Pygame - 有用的资源
- Pygame - 讨论
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 | 获取密钥标识符的名称 |
pygame.key.key_code | 从密钥名称获取密钥标识符 |
pygame.key.start_text_input | 开始处理 Unicode 文本输入事件 |
pygame.key.stop_text_input | 停止处理 Unicode 文本输入事件 |