8.1 LISTADO DE CLASES.
A continuación se listan todas las clases generadas para la implementación del juego y una breve descripción de cada una de ellas. En el siguiente apartado se analizará con mayor detenimiento el código de las que he considerado más relevantes en la implementación.
CLASE: CAMARACONTROL.JS
DESCRIPCIÓN
Clase que se encarga de mantener la cámara fijada en la posición del personaje actualizando constantemente su posición.
ÁMBITO
Global. Se usa en todas las escenas del juego.
INTERACCIÓN CON OTRAS CLASES O COMPONENTES
Jugador
CLASE: CODIGOITEM.JS
DESCRIPCIÓN
Clase que contiene el identificador de un código para generar un TextoEditable con el contenido apropiado. También se encarga del movimiento del objeto al que está asociada la clase.
ÁMBITO
Global. Se usa en todos los niveles del juego.
REFERENCIAS
Ninguna
CLASE: CONTROLFASES.JS
DESCRIPCIÓN
Clase que gestiona las transiciones entre pantallas del menú principal. Permite mediante el uso de botones de la interfaz, moverse a la pantalla de Instrucciones, Créditos o empezar el juego en cualquier de sus niveles.
ÁMBITO
Menú principal
REFERENCIAS
Cámara – ya que la transición hacia la pantalla de créditos se basa en un movimiento de la cámara.
CLASE: CONTROLJUEGO.JS
DESCRIPCIÓN
Clase principal que se encarga de gestionar la mayoría de eventos como el pausado del juego, el menú de pausa, transiciones entre niveles y, sobre todo, la carga de códigos desde los XML y la instanciación de TextosEditables para incorporarlos al editor.
ÁMBITO
Global. Se usa en todos los niveles del juego.
REFERENCIAS
Jugador, Cámara, PuertaFinal, TextoEditable, Editor
CLASE: CONTROLPAUSA.JS
DESCRIPCIÓN
Clase que ejerce de interfaz entre la lógica de pausa del juego y los eventos activados al clicar en los botones de pausa. También se encarga de gestionar la parte gráfica del pausado.
ÁMBITO
Global. Se usa en todos los niveles del juego.
REFERENCIAS
ControlJuego
CLASE: INPUTEDITOR.JS
DESCRIPCIÓN
Clase que se encarga de gestionar toda la entrada y modificación de comandos hacia las partes de código editables, compuestas por instancias de TextoEditable. También incluye las funciones destinadas a habilitar y deshabilitar el componente de entrada de texto de la interfaz.
ÁMBITO
Global. Se usa en todos los niveles del juego.
REFERENCIAS
PasarelaEditor, ControlJuego, ControlPausa, MensajeError.
CLASE: PASARELAEDITOR.JS
DESCRIPCIÓN
Clase importante que ejerce de pasarela entre los comandos introducidos mediante el InputEditor y la clase final a la que pertenece el código que se quiere modificar. También sirve como enlace para mostrar los mensajes de error que se generan en la clase modificada y el InputEditor.
ÁMBITO
Global. Se usa en todos los niveles del juego.
REFERENCIAS
Multitud – Todos los objetos específicos de un nivel concreto: Puerta, PlataformaInicial, Bug, Bug02, Trampilla, Plataforma, Bug03, PlataformaGiratoria, PlataformaCarga, Deadlock, BugFinal.
CLASE: MENSAJEERROR.JS
DESCRIPCIÓN
Clase sencilla que muestra un texto de error en la interfaz durante un intervalo de tiempo determinado.
ÁMBITO
Global. Se usa en todos los niveles del juego.
REFERENCIAS
Ninguna
CLASE: TEXTOEDITABLE.JS
DESCRIPCIÓN
Clase que sirve para crear el tipo de texto que poder ser modificable mediante el editor del juego. También se encarga de resaltar visualmente el texto seleccionado.
ÁMBITO
Global. Se usa en todos los niveles del juego.
REFERENCIAS
InputEditor, ControlJuego, ControlPausa.
CLASE: JUGADORMOVIMIENTO.JS
DESCRIPCIÓN
Clase importante que se encarga de gestionar el movimiento del personaje y los eventos relacionados con las colisiones e interacciones con el entorno del nivel.
ÁMBITO
Global. Se usa en todos los niveles del juego.
REFERENCIAS
ControlJuego, BugFinal
CLASE: PORTAL.JS
DESCRIPCIÓN
Clase asociada al elemento ubicado al final de los niveles que te permite acceder al siguiente nivel. Representa la salida de cada uno de los niveles excluyendo el final.
ÁMBITO
Global. Se usa en todos los niveles del juego menos en el final (nivel 4).
REFERENCIAS
ControIJuego
CLASE: PUERTA.JS
DESCRIPCIÓN
Clase que gestiona las puertas que se pueden encontrar en los diferentes niveles. En primera instancia se creó como objeto específico del primer código modificable al que se enfrenta el jugador, pero se reaprovechó en otros niveles. Para ello se creó una función directa que abriese la puerta sin tener que recurrir a las acciones del jugador.
ÁMBITO
Global. Se usa en la mayoría de niveles.
REFERENCIAS
Ninguna
CLASE: PUERTAFINAL.JS
DESCRIPCIÓN
Clase asociada a las puertas situadas al final de cada nivel. Lleva el recuento de bugs con vida dentro del nivel para poder gestionar su apertura en caso de que ya no queden más.
ÁMBITO
Global. Se usa en todos los niveles del juego menos en el final (nivel 4).
REFERENCIAS
Ninguna
CLASE: PLATAFORMAI NICIAL.JS
DESCRIPCIÓN
Clase simple con la que interactuar en el primer nivel. Se puede modificar su escala y devolverla a la forma inicial mediante una función directa.
ÁMBITO
Nivel 1
REFERENCIAS
Ninguna
CLASE: BUG.JS
DESCRIPCIÓN
Clase del primer bug del juego. Muy simple, solo se encarga de habilitar o deshabilitar el objeto según el comando recibido.
ÁMBITO
Nivel 1
REFERENCIAS
ControlJuego
CLASE: PLATAFORMA.JS
DESCRIPCIÓN
Clase de la plataforma del segundo nivel que permite modificar su rotación y, según la configuración de sus variables, moverse entre las posibilitando el acceso entre las dos habitaciones donde se encuentra.
ÁMBITO
Nivel 2
REFERENCIAS
Ninguna
CLASE: BUG02.JS
DESCRIPCIÓN
Clase que sirve para gestionar el código de los dos bugs existentes en el nivel 2. Por una parte gestiona la modificación de código de uno de ellos y también se encarga de comprobar la condición de muerte por caída del otro bug del nivel.
ÁMBITO
Nivel 2
REFERENCIAS
ControIJuego
CLASE: TRAMPILLA.JS
DESCRIPCIÓN
Clase asociada a la trampilla central de una estancia del nivel 2. Contiene código parecido al usado en el ControlJuego ya que también debe hacer una carga de archivos XML para comprobar si debe abrirse.
ÁMBITO
Nivel 2
REFERENCIAS
Bug
CLASE: BOT.JS
DESCRIPCIÓN
Clase que implementa los pequeños robots que siguen al personaje en el nivel 3. De forma similar a la clase CamaraControl, básicamente se encarga de actualizar el destino de los robots con la posición actual del personaje.
ÁMBITO
Nivel 3
REFERENCIAS
Jugador
CLASE: BUG03.JS
DESCRIPCIÓN
Clase del bug del nivel 3. Se encarga de su eliminación si se cumples las condiciones necesarias especificadas por las funciones que contiene.
ÁMBITO
Nivel 3
REFERENCIAS
ControIJuego
CLASE: PLATAFORMAGIRATORIA.JS
DESCRIPCIÓN
Clase de la plataforma del nivel 3. Su función basa en rotar según el eje que se haya especificado para poder acceder a salas inaccesibles de otra forma. También incluye un método para devolverla a la posición original.
ÁMBITO
Nivel 3
REFERENCIAS
Ninguna
CLASE: PLATAFORMACARGA.JS
DESCRIPCIÓN
Clase de la plataforma que sirve como báscula y gestiona la apertura de una puerta cercana según el número de personajes que estén en contacto con ella. Además incluye la gestión del texto que aparece en la mini pantalla que posee, actualizando cada vez que un objeto entra o sale de su superficie.
ÁMBITO
Nivel 3
REFERENCIAS
Bot, Puerta.
CLASE: DEADLOCK.JS
DESCRIPCIÓN
Clase del último nivel que plantea inicialmente un código con ejecución de dos hilos concurrentes los cuales reservan cada uno de ellos un recurso que necesita el otro, creando una situación de bloqueo mutuo.
ÁMBITO
Nivel 4
REFERENCIAS
Puerta, Puerta2.
CLASE: PUERTA02.JS
DESCRIPCIÓN
Clase vacía que requerida únicamente como segundo recurso a reservar en la situación planteada de exclusión mutua.
ÁMBITO
Nivel 4
REFERENCIAS
Ninguna
CLASE: BUGFINAL.JS
DESCRIPCIÓN
Clase del enemigo final del juego, el cual implementa un sistema de hilos de ejecución asignados por el jugador para poder eliminarlo.
ÁMBITO
Nivel 4
REFERENCIAS
Ninguna