Sei sulla pagina 1di 4

Programacin Avanzada para Internet

Prctica 3. Vdeo Juego (2 sesiones)

NDICE
1.- Introduccin
2.- Estructura de la aplicacin y las clases.
3.- Actividades
4.- Ampliaciones.
5.- Bibliografa.
OBJETIVOS
Aplicar los aspectos bsicos de la programacin concurrente.
Aprender a disear una pequea aplicacin con animacin

1.- Introduccin
En esta prctica se pretende desarrollar los aspectos ms bsicos de la programacin
concurrente, diseando un video juego simple.
El video juego consiste en una parrilla de juego (similar al rea de trabajo de prctica
anterior), en el que unas esferas animadas se mueven aleatoriamente por ella. El jugador
nicamente debe tratar de esquivarlas moviendo su icono con el ratn por la parrilla.
Durante todo el juego el botn izquierdo del ratn deber estar pulsado
Desarrollo de una partida: Inicialmente el jugador marca la duracin y el nivel de
dificultad de la partida. Estos dos valores quedan validados cuando se pulsa el botn
iniciar. La partida comenzar cuando se pulse el botn izquierdo del ratn sobre la
parrilla debiendo mantenerse pulsado mientras dure la partida. La partida contina hasta
que ocurre una de las siguientes tres acciones:
1. Se deja de pulsar el botn izquierdo del ratn.
2. El jugador es alcanzado por una esfera invasora.
3. Termina el tiempo del juego.
Al final del juego una caja de dilogo felicitar al jugador si ha ganado evitando ser
alcanzado por las esferas durante todo el tiempo de la partida o le comunicar que ha
perdido la partida.

La interfaz grfica del video juego tiene el siguiente aspecto:

2.- Estructura de la aplicacin y las clases


El desarrollo de la aplicacin se descompone en dos partes diferenciadas:
Diseo de la interfaz grfica.
Diseo de las animaciones.
El proyecto bluej que se anexa con la prctica tiene el siguiente desglose de clases:

Diseo de la interfaz grfica


La interfaz del juego es bastante ms sencilla que la de la prctica anterior.
nicamente tiene una barra de botones, una parrilla de juego y una barra de estado
(igual a la de la prctica anterior). Se mantiene tambin la clase Contexto. A
continuacin se comentan los aspectos relativos a las clases propias de esta aplicacin,
que no estaban en la prctica anterior.

Clase Parrilla. Esta clase es una extensin de un JPanel, representa la


parrilla de juego. Las componentes que se aaden son el jugador y las
animaciones. Adems tiene la programacin de los eventos de ratn que
provocan el movimiento del jugador. Cuando el jugador pulsa el botn dentro
de la parrilla, previa pulsacin del botn de inicio, es cuando realmente
empieza el juego. Se crea un objeto de la clase lanzador de animaciones y se
pone en ejecucin. Cuando el jugador levante el dedo del botn del ratn,
termina el juego. Mientras lo tiene pulsado, se recogen las coordenadas del
jugador y se actualiza la posicin del jugador (objeto de la clase
ObjetosVoladores), para que cada vez que cambien de posicin las
animaciones comprueben si han colisionado con el jugador.

Clase Barra_Botones. Esta clase es una extensin de un JToolBar, que


contiene tres componentes, el botn de inicio, una lista para seleccionar el
nivel y un campo de texto para indicar los milisegundos de ejecucin del
juego.

Se proporciona toda la estructura de la interfaz grfica, lo nico que se deja para


desarrollar es la programacin del botn inicio. Cuando el jugador pulsa dicho botn se
deben establecer todos los parmetros de inicio del juego:
Marcar el inicio de la partida, poniendo el atributo estado a 1 de la
clase Contexto. De forma similar se debe recuperar de las
componentes correspondientes el nivel de ejecucin y el tiempo de
ejecucin.
Colocar el oyente de ratn al objeto de la clase Parrilla.

Diseo de las animaciones.


Esta es la parte ms novedosa de la prctica y la que ms tenis que desarrollar. Las
clases relacionadas con la concurrencia y animacin son las siguientes:

Clase Contexto. Esta clase slo tiene atributos estticos y sus mtodos para
modificarlos. Algunos de ellos requieren acceso restringido as que sus
mtodos de acceso y modificacin se han definido sincronizados. Aqu se
define toda la informacin que comparten las clases relacionadas con la
animacin del juego.

Clase Despertador. Esta clase como su nombre indica representa un


despertador y se ha diseado para que se ejecute como un hilo independiente.
3

Se crea un objeto de dicha clase indicando el tiempo que debe transcurrir


hasta que suene ( en este caso que ponga un atributo de la clase Concurrencia
a cierto). Cuando se lanza a ejecucin empieza a contar.

Clase LanzadorOVoladores. Esta es una de las clases principales que se


debe disear. En funcin del nivel y del tiempo se lanzan a ejecucin
diferentes animaciones. Para lanzar una animacin primero debemos crear un
objeto de la clase ObjetoVolador (extensin de JComponent) y con este crear
un Animador y ponerlo en ejecucin. Se puede empezar por un esquema
sencillo y luego tratar de complicarlo.

Clase Amimador. Cada objeto de esta clase representa un hilo de ejecucin


independiente. Su atributo principal es un ObjetoVolador que mientras se
cumplan las condiciones del juego tiene que ser animada (modificar su
posicin). Sobre la clase que se anexa estn los detalles ms relevantes.

3.- Actividades
Implementar en Java todas las clases presentadas en el apartado anterior. Las
cuestiones que no se han desarrollado en el apartado anterior sern comentadas
en la clase de prcticas.

4.- Ampliaciones
Se comentarn en clase de prcticas.

5.- Bibliografa
Bruce Eckel. Piensa en Java. Prentice may. 2000
Documentacin de Java 1.4.

Potrebbero piacerti anche