296. Definición del mapeo de teclado en main
Definir el mapeo de teclado a botones de la NES para main_only_background.py.
Lección 296 de 356 · tests/chapter_08_manual_main/test_296_main_keyboard_mapping_definition.py
Archivo a actualizar
main_only_background.pyPor qué existe este paso
main_only_background.py es el ejecutor visual histórico de pygame solo de fondo. Para hacer que la ROM sea interactiva, necesita un pequeño mapeo de los nombres de los botones del mando de la NES a las constantes de teclas de pygame.
Este primer paso de teclado solo define el diccionario de mapeo. La siguiente prueba cubre el ayudante que aplica los eventos de teclas a los booleanos de botones de Controller y lo conecta al bucle de eventos de pygame.
Ejemplo de implementación sugerido
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,
}¿Por qué esta dirección?
Este diccionario responde a la pregunta
"Which keyboard key controls this NES button?"Por ejemplo, en la siguiente prueba haremos
KEYS["a"] == pygame.K_zsignifica que la tecla Z del teclado controla el botón A de la NES.
Fuera de alcance
- Manejo de eventos KEYDOWN / KEYUP
- Soporte de joystick/mando de pygame
- Interfaz de reasignación de teclas
- Puerto de mando 2
Ejecutar esta lección
uv run pytest tests/chapter_08_manual_main/test_296_main_keyboard_mapping_definition.py -v