05 ‐ Arquitectura de la aplicación - martaarevalo/HoraDelBocata_ProyectoSintesis GitHub Wiki
La aplicación sigue una arquitectura modular y basada en componentes. A grandes rasgos se puede describir de la siguiente manera:
🧠 Arquitectura Lógica
La lógica del juego se organiza en varias capas:
-
Escenas (Scenes): Cada entorno se implementa como una clase que extiende
BaseScene
. Por ejemplo,MarcelineHouse
,TreeHouse
oTravelingMap
. Cada escena se encarga de cargar sus assets (mapas, sprites, etc.), manejar colisiones, controles e interacciones. -
Objetos de Juego: Los elementos centrales como el jugador y los NPC se definen en clases en la carpeta
src/objects
. Por ejemplo,Player
yNPC
encapsulan la lógica de movimiento, animaciones e interacciones. -
Utilidades y Componentes UI: Funciones de apoyo para gestionar modales, inventarios y ayudas se encuentran en
src/utils
. Ejemplos sonhelpUI
ycookingUI
.
🗂️ Arquitectura Física
La estructura del proyecto responde a una separación de responsabilidades:
-
HTML: Se encuentran archivos como
game.html
eindex.html
que sirven de contenedor para la aplicación web. -
CSS: La carpeta
css
contiene estilos divididos por componentes y páginas, por ejemplo,game.css
para la interfaz del juego yintroduction.css
para la página de introducción. -
JavaScript/Scenes: La carpeta
js
alberga archivos con scripts principales y la carpetasrc
organiza la lógica del juego en subcarpetas (escenas, objetos y utilidades). -
Assets: Imágenes, sonidos y mapas se sitúan en la carpeta
assets
, lo que permite separar claramente los recursos visuales y auditivos del código. -
APIs: Algunos componentes del backend, como
ranking.php
se utilizan para gestionar aspectos del juego (por ejemplo, ranking o temporizadores) y se sirven mediante PHP u otros servidores.