PacMan - Implementación con gráficos y transformaciones geométricas.

Desarrollo de una versión del clásico Pac-Man utilizando programación orientada a objetos y algoritmos de graficación, integrando transformaciones geométricas y manejo de matrices para la lógica del juego.

#C++ #Gráficos por computadora #POO #Algoritmos
PacMan - Implementación con gráficos y transformaciones geométricas.

Descripción general

Este proyecto consiste en la implementación del videojuego Pac-Man, recreando su lógica principal mediante el uso de programación orientada a objetos y técnicas de graficación por computadora
El juego simula el comportamiento clásico: Pac-Man recorre un laberinto consumiendo pellets mientras evita a los fantasmas, integrando mecánicas de colisión, movimiento y actualización de estados.

Arquitectura del sistema

El sistema se diseñó bajo un enfoque modular, donde cada elemento del juego está representado como una clase independiente:
  • Punto: base para coordenadas en el sistema 
  • Pared, Pellet y SuperPellet: elementos del entorno 
  • Fantasma y Pac-Man: entidades dinámicas 
  • Graficar: encargado de la representación visual 
Además, se implementaron clases para transformaciones geométricas como rotación, escalado y traslación, permitiendo manipular las figuras en pantalla.

Lógica del juego

La mecánica se basa en una matriz de caracteres (28x31) que representa el mapa del juego, donde cada símbolo define un elemento (paredes, pellets, personajes, etc.).
El sistema procesa esta matriz para:
  •  Controlar el movimiento del jugador mediante teclado (W, A, S, D) 
  •  Gestionar colisiones con paredes y enemigos 
  •  Actualizar el estado del juego (consumo de pellets, fin de partida) 
  •  Simular el comportamiento de los fantasmas 
Este enfoque permite separar la lógica del juego de la representación gráfica, facilitando su mantenimiento y escalabilidad. 

Sistema de graficación

La representación visual se construye a partir de matrices de 13x13 píxeles para cada objeto, las cuales se transforman en conjuntos de puntos para ser dibujados en pantalla.
Se implementaron:
  •  Transformaciones geométricas (rotación, escalado, traslación) 
  •  Uso de la librería graphics.h para renderizado 
  •  Técnica de doble buffer para evitar parpadeo 
  •  Algoritmo de Bresenham para dibujo de líneas 
Esto permite generar animaciones fluidas y mantener consistencia visual en todos los elementos del juego. 

Resultado

Se obtuvo una implementación funcional del juego, con interacción en tiempo real, animaciones y comportamiento dinámico de los elementos, demostrando la integración de conceptos de programación, algoritmos y gráficos por computadora

---------------------------------------------------------------------------------------

Repositorio en GitHub: https://github.com/jangelmm/Pacman