C++ SDL2
La meta
Recrear Pac-Man (1980) lo más fiel posible a la versión arcade, usando C++ y la librería SDL2 para gráficos, sonido y entrada.
Qué incluye
- Los cuatro fantasmas (Blinky, Pinky, Inky y Clyde) con sus modos Scatter y Chase, y animaciones por dirección.
- Estado asustado con parpadeo de advertencia, ojos que regresan a casa y puntaje de 200 a 1600 por fantasma consecutivo.
- Animación de muerte de 12 cuadros y ocho frutas distintas según el nivel, de la cereza a la llave.
- Sirena que se acelera cuando quedan pocos puntos, high score, pausa, reinicio y control de volumen (100, 50, 25 o silencio).
Cómo está hecho
C++ con SDL2, organizado por clases (Game, Ghost, GhostAI, AudioManager) y compilable con CMake o Makefile. Todos los sprites y sonidos viven en una carpeta de assets, separados del código.
Un bug interesante
En la versión 1.1, Blinky y Pinky se quedaban atrapados en bucles en las esquinas durante el modo Chase. La causa: al cambiar entre Scatter y Chase los fantasmas no invertían su dirección, algo que el arcade original sí hace. La solución fue llamar a reverseDirection() dentro de Ghost::setMode() en cada transición.
Lo que aprendí
- Entender cómo funciona C++ en los videojuegos, algo que nunca había tocado: antes solo había usado C++ y su lógica en proyectos de la escuela.
- Con ayuda de la librería SDL2, entender cómo se manejan los recursos, los sonidos y todo lo que interviene en un juego.