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 o TravelingMap. 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 y NPC 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 son helpUI y cookingUI.


🗂️ Arquitectura Física

La estructura del proyecto responde a una separación de responsabilidades:

  • HTML: Se encuentran archivos como game.html e index.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 y introduction.css para la página de introducción.

  • JavaScript/Scenes: La carpeta js alberga archivos con scripts principales y la carpeta src 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.


📊​ Diagramas

Captura desde 2025-05-13 11-59-49