296. Определение сопоставления клавиатуры в main
Определение сопоставления клавиш клавиатуры с кнопками NES для main_only_background.py.
Урок 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 клавиатуры управляет кнопкой A NES.
Вне рамок этого шага
- обработка событий KEYDOWN / KEYUP
- поддержка джойстика/геймпада pygame
- интерфейс переназначения клавиш
- порт геймпада 2
Запустить этот урок
uv run pytest tests/chapter_08_manual_main/test_296_main_keyboard_mapping_definition.py -v