Zombies sin Receso
Integrantes:
Profesor: Agustín Gonzalez
Problema/Descripción
Las actividades lúdicas son fundamentales en el desarrollo como personas
particularmente como estudiantes. Estas permiten liberar el estrés y producir satisfacción en el jugador a medida que va logrando objetivos. De aquí surge Zombies sin receso, un videojuego de plataformas en el que uno controla a Don Fede, para poder convertir a los zombies en los estudiantes que eran previo al estrés universitario y encontrar todas las paltas que le permitan sumar un 100 en los certámenes.
Análisis del Problema
El usuario interactúa por primera vez con el juego por medio del mouse, donde puede comenzar el tutorial clickeando en start. Luego se le muestran los atajos de teclado y sus funcionalidades, y clickeando en end tutorial puede comenzar a Don Fede, el protagonista.
Por medio del teclado el usuario interactúa con Don Fede, siendo capaz de darle movimiento y pudiendo lanzar proyectiles. Don Fede actúa como el intermediario entre los otros entes y el usuario, ya que Don Fede puede colisionar con las estructuras y los enemigos (zombies) e interactuar con los coleccionables y las puertas.
- Elementos de la solución
Definición de Requerimientos
Nombre: Abriendo el juego
Propósito: El usuario desea iniciar el juego por primera vez.
Actor: Jugador novato.
Pre-condición: El jugador descargó e instaló el juego
Evento:
Actor | Sistema |
|
|
|
|
|
|
Nombre: Aprendiendo a jugar.
Propósito: El usuario desea probar los botones indicados en el tutorial para ver su funcionamiento.
Actor: Jugador novato.
Pre-condición: El jugador apretó el botón de START, leyó el tutorial y presionó END TUTORIAL.
Evento:
Actor | Sistema |
|
|
|
|
|
|
|
|
|
|
Nombre: Fin del juego
Propósito: Proporcionar un riesgo al jugador
Actor: Jugador
Pre-condición: El jugador ya no tiene vidas extra
Evento:
Actor | Sistema |
|
|
|
|
Diseño
Pruebas
Se abre el juego y se muestra el menú principal
Se muestra el tutorial
Fin del tutorial, el jugador puede jugar
No quedan más vidas y el actor choca al jugador con el zombie
Se muestra pantalla de GAME OVER
Se retorna al menú principal
El sistema de colisiones de la clase QGraphicsPixmapItem usa los píxeles de las imágenes para detectar una colisión, por lo que no es suficientemente consistente para nuestro uso. Además, solo puede saber si hay colisión o no, y no en qué lado.
Debido a esto, se crearon hitbox laterales, superiores e inferiores, que se unen al personaje y son los que se usan para detectar colisiones. Estos permiten que la superficie del personaje sea uniforme y que se puede saber con cual de los hitboxes se colisionan, logrando saber donde está esta.
El lanzamiento de proyectiles es una prestación difícil de implementar. Para ello, se definió que el jugador crea una instancia proyectil al lanzarlo. Luego, se conecta la bala con todos los zombies de la escena, de manera que emite una señal si colisiona con uno de ellos y debido a esto el zombie colisionado se desactiva y “vuelve a ser humano”. Esta colisión es revisada cada vez que el proyectil avanza en el eje X. Por último, el objeto se elimina una vez haya colisionado con un zombie o haya recorrido su distancia máxima.