1 Proyecto Burbujas

Anuncio
Proyecto Burbujas
Introducción
El proyecto de programación consiste en la implementación de un sencillo videojuego
en 2D. El juego propuesto está formado por un tablero que contiene burbujas y un
jugador que puede rebotar sobre ellas o hacerlas explotar. El objetivo del juego es que
el jugador se mantenga dentro del tablero el mayor tiempo posible.
Geometría (básico)
Un punto se caracteriza por sus coordenadas x e y de tipo entero pudiendo tomar
valores negativos.
Un círculo se caracteriza por un punto que representa el centro y por el radio (valor
entero). Tiene la propiedad perímetro que se calcula como 2.π.radio.
Un rectángulo se caracteriza por sus cuatro vértices y el tamaño de los lados.
Las figuras geométricas (círculo y rectángulo) se pueden desplazar en el espacio. La
dirección de desplazamiento puede ser: izquierda, derecha, arriba y abajo.
Conceptos del juego
Un jugador representa la entidad controlada por el usuario que se mueve por el
tablero del juego. Se caracteriza por las propiedades:
-
Región que ocupa en el plano (rectángulo).
-
Velocidad, que será representada con un valor entero. Inicialmente tendrá el
valor 0.
-
Botar, valor booleano que indica si el jugador puede rebotar.
1
La funcionalidad de un jugador es la siguiente:
-
Botar: establece la propiedad botar a verdadero.
-
Desplazar a la derecha: desplaza la región del jugador a la derecha. El valor
del incremento de desplazamiento será una constante (por ejemplo, 10).
-
Desplazar a la izquierda: operación análoga a la anterior que realiza el
desplazamiento a la izquierda.
-
Mover: desplaza en el eje vertical la región del jugador. La cantidad de
desplazamiento será igual a la velocidad menos la gravedad. El valor de la
gravedad es una constante del juego (por ejemplo, 10). Tras realizar el
desplazamiento, la velocidad quedará reducida a la mitad.
-
Rebotar: realiza la acción de rebote que consiste en incrementar la velocidad
en tres veces el valor de la gravedad y establecer la propiedad botar al valor
falso.
A continuación se desarrollan las burbujas del juego. En primer lugar se define una
burbuja básica y posteriormente se describen burbujas especializadas.
Una burbuja es un componente del juego que se mueve siempre en sentido vertical
ascendente. El jugador podrá botar sobre las burbujas o hacerlas explotar.
Las propiedades que caracterizan a una burbuja son las siguientes:
-
Región que ocupa en el plano (círculo).
-
Velocidad límite: velocidad máxima que puede alcanzar.
-
Velocidad actual: representa la velocidad que tiene la burbuja.
-
Explotada: atributo booleano que informa si la burbuja ha sido explotada.
La funcionalidad que caracteriza a las burbujas es la siguiente:
-
Explotar: hace explotar la burbuja.
-
Situar. Esta operación recibe como parámetro un punto que se utiliza como
referencia para situar la región de la burbuja. El resultado de la operación
será que el centro de la región de la burbuja estará situado en el punto que
se establece como parámetro.
-
Ascender. Esta operación desplaza la burbuja hacia arriba. La cantidad de
desplazamiento en el eje Y equivale a su velocidad actual. Por último, se
incrementa la velocidad actual en una unidad, siempre que no supere la
velocidad límite.
-
Chocar: establece la velocidad actual a 0.
Una burbuja limitada es una burbuja que puede desplazarse hasta una determinada
cantidad. El límite de desplazamiento se establece en su construcción y no varía.
Cada vez que la burbuja asciende, determina si puede seguir subiendo, esto es, si ya
ha alcanzado su límite de desplazamiento. En caso de llegar al límite, la burbuja se
queda en su posición y no actualiza la velocidad actual, es decir, no hace nada.
Una burbuja débil es una burbuja que se caracteriza por soportar un número limitado
de botes (botes restantes). Esta propiedad se establece en la construcción. Cada vez
que recibe un bote (se aplica la operación chocar), reduce en una unidad el número de
botes restantes. Cuando esta propiedad alcanza el valor 0, la burbuja explota.
2
Una burbuja creciente es una burbuja débil que va aumentando el radio de su región
en 25% cada vez que soporta un bote. Dado que es una burbuja débil, este tipo de
burbujas explota cuando ha recibido un número de botes igual a su tamaño inicial
(radio).
Una burbuja express es una burbuja que se caracteriza por incrementar su velocidad
límite con el paso del tiempo. Así pues, la velocidad límite se calcula como la velocidad
límite inicial multiplicada por el número de segundos que han transcurrido desde su
creación.
Geometría (avanzado)
Las figuras geométricas (círculo y rectángulo) deben ofrecer la funcionalidad adicional:
-
Obtener polígono de encuadre. El polígono de encuadre de una figura está
formado por los cuatro puntos que definen las coordenadas: (menorX, menorY),
(menorX, mayorY), (mayorX, mayorY) y (mayorX, menorY). El método retorna
una lista con estos puntos.
-
Consulta si un punto está dentro de la figura. Un punto está dentro de una
figura si las coordenadas (x, y) del punto cumplen las condiciones: 1) x >=
menorX, 2) x <= mayorX, 3) y >= menorY, 4) y <= mayorY.
-
Consulta si otra figura está dentro de la figura. Una figura B está dentro de otra
figura A si todos los puntos del polígono de encuadre de B están dentro de A.
-
Solapamiento con otra figura. Sean A y B dos figuras, siendo menorX(A) la
coordenada menor X de la figura A, menorY(A) la coordenada menor Y de
figura A, etc., se dice que A y B están solapadas si se cumplen las siguientes
condiciones: 1) mayorX(A) >= menorX(B), 2) menorX(A) <= mayorX(B), 3)
mayorY(A) >= menorY(B), y 4) menorY(A) <= mayorY(B)
Para los cálculos anteriores, se definen las siguientes propiedades:
-
menorX: coordenada menor en X
-
mayorX: coordenada mayor en X
-
menorY: coordenada menor en Y
-
mayorY: coordenada mayor en Y
Tablero
Un tablero representa el escenario en el que se desarrolla el juego. Las propiedades
de un tablero son las siguientes:
-
Anchura del tablero (inmutable).
-
Altura del tablero (inmutable).
-
Región del plano ocupada (rectángulo). Esta propiedad no varía.
-
Colección de burbujas que contiene.
-
Jugador.
-
Tiempo de juego. Indica el tiempo en segundos que ha pasado desde que el
juego se ha iniciado.
-
Estado del juego: no iniciado, arrancado y finalizado (enumerado).
3
Así mismo, un tablero se caracteriza por crear burbujas cada cierto tiempo (periodo de
generación en milisegundos). Para ello hace uso de una colección de burbujas que
actúan como semillas para crear las nuevas burbujas. Además, las nuevas burbujas se
van situando alternativamente en posiciones fijas de la parte inferior del escenario.
Estas posiciones se denominan focos.
La funcionalidad que ofrece un tablero es la siguiente:
-
Establecer el jugador. El estado del tablero debe ser “no iniciado”. También es
requisito que la región del jugador esté dentro del tablero.
-
Arrancar: establece el estado del juego en “arrancado”. Es requisito para
aplicar esta operación que el estado sea “no iniciado”.
-
Parar: establece el estado del juego en “finalizado”. Para aplicar esta operación
el tablero debe estar en estado “arrancado”.
La funcionalidad más importante de un tablero es actualizar la situación del juego cada
vez que es solicitado. Es requisito para aplicar esta operación que el tablero esté en
estado “arrancado”. El algoritmo de actualización del juego es el siguiente:
-
Generar burbujas. Debido a su extensión, este paso del algoritmo se explica
más adelante.
-
Mover las burbujas. Sobre todas las burbujas, aplica la operación que las hace
ascender.
-
Mover al jugador.
-
Comprobar choques entre el jugador y las burbujas. Si se produce
solapamiento entre la región del jugador y una burbuja, el jugador bota sobre la
burbuja (rebote) si tiene activada la propiedad botar, y además se le indica a la
burbuja que va a soportar un bote (chocar). En cambio, si la propiedad botar
vale falso, la burbuja será explotada.
-
Eliminar las burbujas que han explotado.
-
Eliminar las burbujas que estén completamente fuera del tablero.
-
Controlar el fin de juego. El juego finaliza cuando la región del jugador esté
completamente fuera del tablero.
La generación de burbujas es la operación más importante para el funcionamiento del
juego. Se genera una nueva burbuja cada vez que transcurra un tiempo igual o
superior al periodo de generación. Las acciones a realizar son las siguientes:
-
En primer lugar, se elige una burbuja de la colección de semillas. La nueva
burbuja será una copia de la burbuja elegida.
-
A continuación, se elige un foco y se sitúa la nueva burbuja en ese foco.
-
Por último, se introduce la burbuja en la colección de burbujas.
4
Descargar