You are on page 1of 10

Informe Final

Juego Space Invaders en Java

1. Informacin General.
Nombre del proyecto:
Space Invaders en Java.
Institucin:
Facultad de Ingeniera, Universidad de Cuenca.
Responsables:
Alulema Santiago
Urgils Diego.
Fecha de Inicio:
28 de octubre del 2014
Fecha de Entrega:
13 de noviembre del 2014

2. Introduccin

Space Invaders es un mata marciano clsico en dos dimensiones. El jugador controla


una nave que puede moverse a la derecha o izquierda y un botn de disparo.
Tiene que ir destruyendo los extraterrestres invasores que van acercndose a
la tierra cada vez ms rpidamente a medida que el jugador va destruyendo a los
enemigos. Este ciclo se puede repetir en forma indefinida. Si los invasores llegan al
can controlado por el jugador, el juego termina.
El proyecto realizado ayudara para la mejor comprensin y programacin de hilos, el
cual es un concepto que debe estar claro para todo estudiante de ingeniera en
Sistemas.
Programacin de flujo mltiple (Hilos):
un programa de flujo mltiple o multitarea, utiliza varios contextos de
ejecucin para realizar su trabajo. Cada tarea se inicia y termina tan pronto
como sea posible, lo cual es una facilidad para la entrada de datos en sistemas
en tiempo real, especialmente si estos son de diferentes fuentes. En este caso,
se dice que adems del hilo principal del programa en ejecucin, este tiene
otros hilos, o tareas prelas en ejecucin.

Este concepto nos proporciona el libro de programacin hilos, Capitulo 12, del PDF
Programacin interactiva
Esta nocin debemos aplicarlo con interaccion con interfaz grfica en el cual los hilos
se ejecuten paralelamente.
A lo largo de este documento se dar el paso a paso de cmo se realiz el juego de
video hecho en java.

3. Objetivos.

Elaboracin de un software interactivo (Juego de video), utilizando los diferentes


conceptos de la programacin multitarea.

Afianzar de una manera prctica el manejo de los hilos. Enfrentndonos a las


diferentes dificultades que estos presentan.

Aprender a trabajar con la sincronizacin de mtodos en java al acceder


concurrentemente a un objeto.

4. Diagrama de Clases
Diagrama de Clases del paquete Hilos

Diagrama de Clases del paquete JuegosNaves.clases

Diagrama de Clases del paquete Juego Naves

5. Caractersticas
-

el juego est elaborado en Java, se utilizarn diferentes libreras como las grficas las
de sonido, entre otras. En el juego se utilizan hilos, adems de la librera grafica Canvas
del paquete de java.awt y libreras de sonido de javazoom.

El juego est realizado de la siguiente manera:


o El juego tiene 3 niveles, cada uno con mayor dificultad.
o El juego termina si se acaban las vidas de la nave o si los aliens llegan al hasta
la lnea roja.
o Con el avance de los niveles las naves enemigas ganan velocidad de descenso.
o El jugador solo podr disparar una sola vez por turno.

El manejo del puntaje del juego se da de la siguiente manera.


o Cada vez que se mata a un enemigo se gana una cantidad variable de puntos.
o Inicialmente empieza en 100 puntos por enemigo. Luego cada vez que los
enemigos descienden verticalmente se reduce la cantidad de puntos ganados
en 2. Entre ms alto mueran los enemigos, ms rpido aumentar el puntaje.

6. Estructura del proyecto


Paquetes que contiene el proyecto Juego Naves son:
<Default package>, Hilos, juego naves, juegonaves.clases, utilidades.

Imagen del proyecto Juego Naves


Cada Paquete contiene la siguiente informacin:
En el paquete <Default package>

Contiene la imagen de ayuda.


En el paquete Hilos:
Se puede obtener las siguientes clase: control.java, HiloAliens.java, HiloBala.java,
HiloColisiones.java, HiloNave.java, HiloPintar.java,
HiloPrincipalJuego.java,HiloSonido.java
Las cuales cumplen con las siguientes funciones:

Cada clase contiene una extensin de Thread, en la cual es un hilo esperando ser inicializado,
mientras que en la clase Control su nombre lo deja muy en claro, contiene el control del
juego como la velocidad de las naves enemigas, el puntaje, la direccin de las naves, estados
del juego entre otros elementos del mismo.
Cabe recalcar que en la clase HiloliberarNave.java controla la nave q sale sorpresivamente a
un tiempo ramdomico. Mientras que en HiloImagenTemporal.java muestra una mini
explosin en un tiempo muy corto para hacer referencia que la nave amiga o enemiga acaba
de ser destruida.
En las balas amigas como aliadas todas son hilos.
En el paquete juego naves
En este paquete se puede apreciar AyudaFrame.java, ContenedorJuego.java,
JuegoNaves.java, Main.java, MostrarPuntajes.java

En las clases contenidas por este paquete, controlan el interfaz grafica en donde se
encuentran situadas la ventana principal la de ayuda, y las del juego, respectivamente.
En el Frame ayuda, podremos encontrar una pequea informacin sobre como
interactuar con el juego , sus condiciones y sus reglas, tambin se puede observar en la
parte inferior del frame imgenes de las teclas que se podrn utilizar para el manejo
de la nave amiga para que el usuario(Gamer) pueda jugarlo.

En el paquete juegos naves. Clases


Contiene lo siguiente: Alien.java, Bala.java, DrawString.java, Escenario.java, Nave.java,
Objeto.java, PrototypeEsenario.java, RegistroPuntaje.java

En este paquete encontramos las clases mostradas en la imagen anterior las cuales tendrn el
cdigo en donde ciertas clases extienden de la clase objeto, en donde controlaran su
movimiento su posicin entre otros mtodos necesarios para el funcionamiento correcto del
software.
Cada una tendr sus posicin mejor dicho sus coordenadas en la pantalla (JFrame main), para
posteriormente hacer el control de las colisiones.
En el la clase RegistroPuntaje.java controlamos los puntaje guardndoles en un archivo de
texto.
DrawString.java controla las pantallas de los niveles como por ejemplo Nivel 1,
parmetros a ingresar son sus coordenadas en pantalla.

sus

En el paquete utilidades
Podemos observar las siguientes clases: ManejodeArchivos.java, Pintar.java.

En este paquete lo que hacemos es en dibujar las naves en el JFrame, utilizando Canvas,
librera proporcionada por java, aqu dibujaremos las naves, enemigas como la del jugador.
Como fue mencionado anteriormente el ramndomStrgin devuelve un numero aleatorio para
ser utilizado como tiempo, para q la segunda nave aparezca en cualquier momento.
Libreras utilizadas

Las libreras utilizadas es el JDK 1.7 proporcionada por defecto por neatbeans y la librera
jl1.0.jar en donde se controlara el sonido de los efectos del juego.

Imgenes utilizadas para la inclusin en la interfaz grafica

Esta imagen es la de una nave espacial de extensin .png con una dimensin
de 1.73 X 0.95 centmetros, altura y anchura respectivamente

Esta imagen es la de Extraterrestre que representara las naves enemigas de


extensin .png con una dimensin de 1.73 X 0.95 centmetros, altura y
anchura respectivamente

Imagen utilizada para la Ayuda.

Imagen utilizada para la nave sorpresiva donde baja a una velocidad ms


rpida q las dems naves enemigas.

Los sonidos utilizados son los de una explosin, de un arma laser, y cuando el jugador pierde
la msica q se escucha es la GAME OVER de Mario Bros. todos ellos en formato .mp3 , los
cuales fueron obtenidos desde youtube.com y previamente modificados a la exigencia del
juego, A continuacin se adjunta imgenes de los iconos de los efectos del juego.

7. Pantallas
Aqu se muestra la pantalla inicial del programa, en el cual apreciaremos tres opciones
(Botones), que nos direccionaran a diferentes ventanas con excepcin del botn Salir el cual
nos saldr del juego.

Una vez pulsado el botn Juego Nuevo se abrir una nueva ventana con un mensaje inicial
indicando que el juego empezara en el nivel 1 hasta el nivel 3.

A continuacin de la pantalla de Nivel 1 (pantalla mostrada anteriormente), se iniciar el


juego con el puntaje desde cero.

En el segundo botn Puntajes Altos, se mostrar los puntaje de los jugadores que han
concluido con el juego, vale la aclaracin que cuando el juego termina bien sea por perdida o
haber completado todos los tres niveles el jugador podr registrar su Nick(Nombre).

En el botn Reiniciar Puntaje una vez dado click podemos borrar todo registro guardado.
Pero antes de eso nos saldr una ventana de confirmacin.

Pantalla donde se muestra Informacin sobre el Juego. Se la podr acceder desde el


siguiente icono

You might also like