• No se han encontrado resultados

CAPITULO 4. DESARROLLO DE LA LÓGICA DE CUBE’S WAR

4.2 D ISEÑO CONCEPTUAL

Se procede en este apartado a presentar el diagrama de los módulos en los que se divide la aplicación y, posteriormente, se realiza la explicación de cuál es la función de cada uno de ellos individualmente y sus posibles vínculos con los restantes módulos.

4.2.1 Arquitectura del sistema

El videojuego Cube´s War se divide en un conjunto de módulos relacionados entre sí, de modo que se minimicen las dependencias entre ellos y poder separarlos con facilidad.

Cada uno tiene una funcionalidad específica y la unión de todos los módulos producen como resultado la aplicación desarrollada.

55 Figura 47. Arquitectura del sistema

4.2.2 Descripción de los módulos

Una vez observada las relaciones de dependencia existente entre los módulos, se dispone seguidamente a exponer el papel de cada uno de ellos en el conjunto y centrado en la visión global de su funcionamiento. Se realiza de forma más breve en aquellos módulos que no pertenezcan al presente proyecto, siendo solo en este caso el llamado Entorno 3D/Motor Gráfico.

 Módulo Menú principal: es el encargado de mostrar el menú principal cuando se inicia la aplicación y de realizar todas las acciones que se ofrecen al usuario, como modificar el estado de habilitación del módulo Sonido y Vibración o mostrar los autores que han desarrollado el proyecto. También se ofrece la posibilidad de salir de la aplicación, por lo que el módulo de Configuración entraría en ejecución. Además es a partir de Menú principal que origina el Entorno 3D/Motor Gráfico, que es el contexto donde se desarrolla toda la lógica del videojuego, volviendo a éste cuando se finalice la partida. Por lo tanto, es considerado el núcleo principal de todo el proyecto, dado que es a partir de él que se deriva hacia las distintas posibilidades que la aplicación ofrece, retornando a éste una vez finalizadas, pudiendo producir distintos eventos dependiendo de la causa.

 Módulo Sonido: se ocupa de la reproducción de distintos efectos de sonido dependiendo de las acciones que se produzcan durante el desarrollo del videojuego, tanto en el Menú principal como en Lógica. También, mientras que la aplicación se encuentre en ejecución, maneja el estado de habilitación de

56

módulo clave para el correcto funcionamiento del sistema, dado que solo reproduce sonidos y no modifica o altera parámetro alguno que pueda intervenir en el desarrollo lógico del juego, conducir a errores o a estados no deseados.

 Módulo Vibración: su cometido es producir la vibración del dispositivo móvil una determinada duración ante distintas acciones de la aplicación, es decir, en aquellas que se ocasionen en el Menú principal y en Lógica. Al igual que en el módulo Sonido, manipula la condición que posibilita la vibración, que será almacenado por Configuración cuando se cierre la aplicación, y de nuevo implantado por éste cuando se vuelva a iniciar. Tampoco es un módulo esencial en la ejecución del videojuego, solo realiza su función para producir sensaciones al usuario conforme con la acción que ha sucedido.

 Módulo Configuración: es el encargado de guardar en un fichero de configuración el estado de habilitación tanto del módulo de Sonido como el de Vibración cuando se produce el cierre de la aplicación, es decir, el módulo Menú principal. También almacena en ese fichero el número de escenario en el que se encontraba el usuario en el momento que decidió salir de la aplicación. Cuando posteriormente decida volver a iniciarla, se cargará todo lo almacenado en la configuración para conseguir de este modo que la aplicación se encuentre en el mismo estado en el que lo dejó el usuario. Es un módulo relativamente importante porque su cometido produce sobre el usuario la sensación de personalización de la aplicación, pudiendo considerarse opcional.

 Módulo Entorno 3D / Motor Gráfico: este módulo no se implementa en este proyecto, sino que es una biblioteca desarrollada en otro PFC. Se ocupa de la preparación del entorno 3D donde se va a desarrollar el videojuego, su distribución, los elementos que puede usar el módulo Lógica para determinar cómo quiere que sea la estética de sus componentes, las imágenes Sprites de los componentes y el dibujado de ellos. Es la interfaz gráfica del módulo Lógica, y que sin éste, no se visualizaría elemento alguno sobre la pantalla, por lo que el usuario no podría disfrutar del videojuego. Consecuentemente, posee una elevada importancia y es indispensable dentro del conjunto de la aplicación.

 Módulo Lógica: sistema que controla la totalidad del videojuego. Se subdivide en pequeñas partes para que cada una de ellas se centren en el manejo de los distintos componentes que conforman el videojuego. Una de estas unidades es la del protagonista, que se encarga de recibir los datos del módulo Eventos pantalla táctil para producir el avance del personaje controlado, con la ayuda de Sistema de colisiones. Otro componente son los enemigos que pueden ser de tres tipos con distintas características, y que determinando la posición del protagonista anterior, producen su avance sobre el escenario determinado por Sistema de Colisiones. También están los meteoritos que son componentes que tienen un movimiento de caída sobre el escenario que el protagonista debe sortear. El control de la cámara es otra unidad, la cual recibe los datos capturados por el módulo de Sensor de Orientación para su tratamiento y establecimiento de límites, que producen sobre Entorno 3D / Motor Gráfico un giro en el sentido en el que el usuario rote el dispositivo móvil. Los escenarios son parte también del módulo Lógica y que en ellos se conforma cómo van a ser y qué determinados elementos 3D se necesitan para su dibujado. Y por último, la lógica del

57 videojuego en sí, en el que el bucle principal de éste lo utiliza para determinar las colisiones que se pueden producir entre los distintos elementos por el módulo Sistema de colisiones, producir el movimiento de las posiciones de los componentes descritos con anterioridad y finalmente la actualización de sus datos. Todas estas unidades descritas con anterioridad conllevan el manejo de cantidad de datos y conforman el desarrollo total del videojuego, por lo tanto, es un módulo fundamental e indispensable, considerándose como otro núcleo junto con el del Menú principal. Estos datos son usados por el módulo de Entorno 3D / Motor Gráfico para dibujar los elementos.

 Módulo Sistema de colisiones: parte vital dentro del videojuego y que lo utiliza el módulo Lógica para determinar si se puede seguir con el desarrollo del videojuego. Este módulo produce que el videojuego tenga un desarrollo lógico y que se traten distintas acciones que se pueden producir durante una partida. En él se determina si se ha producido colisión alguna entre: protagonista-escenario, protagonista-enemigos, protagonista-meteoritos, protagonista-pinchos, protagonista-llave, protagonista-puerta, enemigos-escenario, enemigos-pinchos y finalmente meteoritos-escenario.

 Módulo Eventos pantalla táctil: su misión es la de capturar los distintos eventos que se producen sobre la pantalla táctil del dispositivo móvil en el que se ejecute la aplicación. Entra en acción cuando se ha iniciado una partida, para determinar qué evento se ha producido, sobre qué pixeles concretos ha ocurrido la pulsación y si éstos se encuentran sobre la zona delimitada para los botones de movimiento del personaje que controla el usuario. Posteriormente a la realización de estas comprobaciones, actuará el módulo Lógica en función del resultado que se haya obtenido, produciendo el movimiento o no del personaje controlado. Su cometido es esencial e indispensable para el desarrollo normal del videojuego, dado que sin él, el usuario no podría hacer progresar al personaje a lo largo de los distintos escenarios que se presentan.

 Módulo Sensor de orientación: se ocupa de la captura y envío de los datos que proporciona el sensor de orientación del dispositivo móvil asociado a la aplicación, al módulo Lógica donde será tratados. Solo se comienza a capturar esos datos que se facilitan, una vez iniciada la aplicación. Estos son los que una vez tratados por Lógica, provocarán sobre el Entorno 3D/Motor Gráfico una rotación en el mismo sentido en el que el usuario gire el dispositivo móvil. Con el giro del entorno se puede visualizar si sobre el escenario existen componentes en el eje Z y poder avanzar o no en el sentido deseado. El módulo tiene una gran importancia dado que al ser un videojuego de plataformas en 3D, se tiene que facilitar al usuario algún modo de poder visualizar el entorno donde se encuentra el personaje que controla.