Un juego de acción y plataformas 2D estilo "Boss Rush" desarrollado en Python.
Este proyecto es un videojuego de combate desarrollado como Proyecto Final para el curso de Computación y Programación de lic. en física en la Universidad de Chile. Implementa un motor de juego modular basado en Pygame, destacando el uso de programación orientada a objetos, máquinas de estados finitos para la IA y física de colisiones precisa.
El jugador controla a un héroe que debe enfrentarse a "Pancho" (Inspirado en un profesor), un jefe final con 2 fases de ataque y comportamientos inteligentes.
- Sistema de Combate Fluido: Combos de 3 golpes, sistema de dash (esquiva) y hitboxes precisas separadas de los sprites visuales.
- IA de Jefe Avanzada (FSM): El jefe "Pancho" utiliza una Máquina de Estados Finitos para decidir entre perseguir, atacar cuerpo a cuerpo, lanzar proyectiles o recuperar su arma.
- Mecánica de Parry: Posibilidad de golpear los proyectiles enemigos para desviarlos y dañar al jefe (estilo Ping-Pong(desarrollo)).
- Arquitectura Modular: Código organizado en Escenas (
Scene Manager) y Entidades (Entity Component), facilitando la escalabilidad. - Feedback Visual: Barras de vida dinámicas, animaciones de estados y efectos de empuje (knockback).
| Acción | Tecla | Descripción |
|---|---|---|
| Moverse | Flechas |
Mover izquierda/derecha |
| Atacar | Z |
Combo de espada (x3) |
| Saltar | X |
Salto simple |
| Dash | C |
Esquiva rápida e invulnerabilidad |
| Pausar/Salir | ESC |
Volver al menú |
| Reiniciar | ENTER |
En pantalla de Game Over |
Sigue estos pasos para probar el juego en tu computadora:
git clone https://github.com/Layex14/Proyecto-pinguino.git
cd Proyecto-FinalEs necesario tener Python instalado. Se recomienda usar un entorno virtual.
pip install -r requirement.txtpython principal.pywProyecto-Final/
│
├── principal.pyw # Entry Point: Bucle principal y Gestor de Escenas
├── configuracion.py # Constantes globales (Pantalla, FPS, Colores)
│
├── escenas/ # Lógica de las pantallas
│ ├── Juego.py # Motor del nivel, colisiones y UI
│ └── menuprincipal.py
│
├── entidades/ # Clases de objetos de juego
│ ├── Entity.py # Clase Padre (Física, Animación, Hitboxes)
│ ├── boss.py # Lógica específica e IA del Jefe
│ └── pancho_config.py # Datos de configuración y balanceo
│
└── recursos/ # Assets (Imágenes y Música)
Si llegaste a este repositorio buscando referencias para tu propio proyecto de Computación y Programación o Física: ¡Eres bienvenido/a!
Este código fue diseñado para ser legible y modular. Siéntete libre de estudiar cómo implementamos la Máquina de Estados del jefe, la separación de Hitboxes vs Sprites o el manejo de Escenas. El código es libre para que aprendas de él.
"La ciencia se construye sobre hombros de gigantes." - ¡Éxito en tu semestre!
Martín Gonzalez- Creador de: Hitbox, Ataques, Vida, parry, estructura modular, administrador de escenarios, botones, pantalla de Derrota y Victoria y el entorno en Github.
Kevin Egoavil- Creador de: Todo el arte visual, Gravedad, movimiento y animaciones de entidades, diccionario de variables, introducción del combate, el pinguino de Victoria y cámara dinamica.
Benjamín Alfaro- Creador de: Musica, IA del Jefe y ataques del jefe (Melee y Throwing)
