Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
José Pardo Madera
/
ProjectoMultimeda2025
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
016fd521
authored
May 01, 2025
by
Jaime de la Chica Bergillos
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Documentacion hasta pantalla cama
parent
108476bb
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
63 additions
and
0 deletions
Documentacion.md
Executable
Documentacion.md
View file @
016fd521
...
...
@@ -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.
Executable
View file @
016fd521
No preview for this file type
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment