296. Main 键盘映射定义
为 main_only_background.py 定义键盘到 NES 按钮的映射。
第 296 / 356 · tests/chapter_08_manual_main/test_296_main_keyboard_mapping_definition.py
需要更新的文件
main_only_background.py为什么需要这一步
main_only_background.py 是历史版本的仅背景可视化 pygame 运行器。为了使 ROM 具有交互性,它需要一个从 NES 控制器按钮名称到 pygame 按键常量的小型映射。
第一个键盘步骤仅定义映射字典。下一个测试涵盖将按键事件应用到 Controller 按钮布尔值并接入 pygame 事件循环的辅助函数。
建议的实现示例
import pygame
KEYS = {
"a": pygame.K_z,
"b": pygame.K_x,
"select": pygame.K_RSHIFT,
"start": pygame.K_RETURN,
"up": pygame.K_UP,
"down": pygame.K_DOWN,
"left": pygame.K_LEFT,
"right": pygame.K_RIGHT,
}为什么采用这个方向?
这个字典回答的问题是
"Which keyboard key controls this NES button?"例如,在下一个测试中我们将执行
KEYS["a"] == pygame.K_z表示键盘 Z 键控制 NES A 键。
超出本步骤范围
- 处理 KEYDOWN / KEYUP 事件
- pygame 游戏手柄/手柄支持
- 重映射界面
- 控制器端口 2
运行本课
uv run pytest tests/chapter_08_manual_main/test_296_main_keyboard_mapping_definition.py -v