Documentacion hasta pantalla cama

parent 108476bb
Showing with 63 additions and 0 deletions
......@@ -24,3 +24,66 @@ Clase donde guardamos lo textos que se muestran en pantalla. Es utilizada durant
mostrar los números. Se beneficia de la clase de SDL TTF_Font, donde guarda en sí la fuente.
Al instanciarla, creamos la fuente con TTF_OpenFont junto con su tamaño y camino al formato que usará.
### GestorPantallas
Cuenta con tres subclases: Handle, GestorPantallas y Pantalla.
La primera de ellas es la que se ocupa de reemplazar las pantallas, comprobar si la pantalla está minimizada
y en general gestionar los cambios de estas.
La segunda, el gestor per sé, es quien inicia las funciones de la biblioteca SDL y que da el pistoletazo de salida
(vídeo, imágenes y audio). También prepara la ventana donde se ejecutará el juego.
La última, la pantalla, es una interfaz que implementarán el resto de pantallas a continuación. Pide que
se inicialicen, que comprueben las entradas de inputs que reciben y que rendericen en pantalla su contenido.
### Historia
Clase encargada de gestionar que avancen los eventos del juego. Tiene un enumerado con todos ellos,
y conforme se vayan realizando acciones concretas, esta irá eliminando los elementos en pantalla e insertando los nuevos.
Para usar solo una instancia de esta clase, usamos extern.
Lo que ocurre al pasar de un estado a otro es que se eliminan objetos que se hayan introducido, se vuelven a insertar los necesarios y
se evita que se pueda interactuar con objetos de previos estados.
### Hitbox
Clase que comprueba si el personaje ha entrado en contacto con un elemento. Esta no se ocupa de la reacción al suceso.
Para hacerlo, calcula con una caja imaginaria creada con las dos esquinas opuestas de esta si parte del personaje se encuentra dentro, y se lo
transmite a quien se lo haya pedido.
### Mano
Clase usada exclusivamente en el minijuego de conseguir la cartea. Funcionalemente es muy similar al jugador,
cuyos comportamientos se explicarán a posteriori. Lo que añade esta clase es la cola de los segmentos de brazo detrás suyo,
los cuales, por motivos de eficiencia, también usando punteros compratidos a sprites.
Cada vez que se mueve, se añade un nuevo elemento a la cola y se comprueba si está chocando con una hitbox.De hacerlo,
retrocede y cambia la dirección a la que está mirando, por lo que también se elimina el último elemento de la cola del brazo
que habíamos insertado previamente. Además, si el jugador lo requiere, se puede reiniciar, volviendo al estado el en que se construyó, sin cola
y en la posición inicial.
### Objeto
Clase que engloba todos los objetos con los que el jugador puede interactuar en su partida. Cuenta con su sprite,
su hitbox y la posición donde se renderizará, al igual que sus dimensiones. Cabe decir que no son iguales las de las hitbox que las
de los sprites, ya que las primeras están en los ejes X,Z (al tratar el espacio como uno tridimensional), y los
segundos en X,Y (para seguir el formato 2D de la pantalla).
Cada objeto cuenta con su propia función que se ejecuta una vez se interactúa con él, como iniciar una cinemática o avanzar en
la historia. Esta función se le pasa al objeto como un lambda. EL objeto tiene su propia llamada a renderizarse y para
comprobar sus colisiones.
### ObjetoCombinable
Hijo de objeto, que comprueba si se han pulsado los elementos para realizar una acción.
### PantallaCama
Pantalla que se ocupa del puzle de recuperar la cartera. Cuenta con una serie de obstáculos, la mano, la cartera
y hitboxes para no salirse de los límites de las casillas marcadas en esta.
Las interacciones que tiene que manejar son el movimiento con las teclas direccionales y clicar uno de los dos botones.
En el primero, al hacerlo, se desplaza la mano, y hasta que no se suelte la tecla y se vuelva a pulsar no continuará con el
movimiento. Al pulsar la tecla de reinicio con el ratón, el minijuego vuelve a su estado inicial, y al pulsar el botón de atrás
se sale de la pantalla.
Aquí cabe destacar una técnica que hemos usado en esta y el resto de pantallas, que son las hitboxes activas y pasivas.
Dentro de las activas están las clásicas, con las cuales no te puedes sobrepasar, se usan en los obstáculos y las paredes.
Las pasivas comprueban si el jugador está dentro, y de estarlo, hacen una acción como mostrar algo en pantalla. Esto ocurre con la cartera.
A cada momento (y en este orden), renderiza los el fondo, la cartera, obstáculos, la cola de la mano,
la mano y los botones.
No preview for this file type
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment