jueves, 21 de abril de 2016

PRÁCTICA9. VIDEOJUEGO. SPACE INVADERS

PRÁCTICA 9 VIDEOJUEGO. SPACE 


INVADERS


Primera parte.

Lo que vas a construir

Con la construcción de la App Space Invaders obtendrás práctica con el uso de componentes como el reloj y temporizadores, utilizando componentes de animación tales como imágenes Sprites y Canvas, el establecimiento de la visibilidad, y la detección de colisiones en App Inventor. Vas a programar una aplicación que tiene un cohete que dispara a todos los platillos voladores que aparecen en pantalla.

 


Primeros pasos

Concéctate al sitio Web App Inventor y empieza un nuevo proyecto. Define como SpaceInvaders , y también establece el título de la pantalla a "SpaceInvaders". Cambia a la vista Blocks y conéctate al emulador o a un dispositivo .

Introducción

Esta práctica presenta las siguientes habilidades, útiles para el futuro desarrollo del juego:
  • Utilización del componente Reloj (clock) .
  • Uso de Clock.Timer (temporizadores) para mover sprites.
  • Uso de Sprite.Dragged para mover un sprite.
  • Uso de la detecciónn de colisiones.
  • Configuración de la visibilidad de sprites.

Preparándose

Para este juego, debes tener dos tipos de sprites: una ImageSprite representando a un cohete que dispara y otra a platillos voladores. Haz clic a continuación para descargar los archivos de imágenes para tu sprite cohete y sprite platillo.






Configurar los componentes

Utiliza el Designer para crear la interfaz de SpaceInvaders . Cuando esté terminada, debería ser como la imagen de abajo.

Para crear esta interfaz, pon los siguientes componentes en el Designer arrastrándolos desde la paleta de componentes al la pantalla del Visor.
Tipo de componentePaletaNombreFunción que desarrolla
CanvasDrawing and AnimationCanvas1El fondo que vamos a poner nuestros a nuestro espacio
ImageSpriteDrawing and AnimationRocketSpriteLa nave espacial en nuestro juego
ImageSpriteDrawing and AnimationSaucerSpriteEl platillo volador en nuestro juego
BallDrawing and AnimationProyectilEl proyectil de la nave espacial.
ClockUser InterfaceClock1Usamos el reloj como temporizador para mover el platillo
HorizontalArrangementLayoutHorizontalArrangement1Para contener la puntuación Label
LabelUser InterfaceLabel1Para contener la palabra "Score"
LabelUser InterfaceScoreLabelPara contener la puntuación numérica actual
ButtonUser InterfaceResetButtonPara reiniciar el juego para que el jugador puede jugar otra vez
Establece las propiedades de los componentes que se describen a continuación:

ComponenteAcción
Canvas1Cambia el Ancho a "Fill parent". Cambia la Altura a 350 y define el fondo en negro.
ResetButtonCambia el texto a "Reset".
RocketSpriteCargar la imagen del cohete y establécela a "rocket.png". Ajusta la coordenada Y a 275. Esto hará que el cohete se encuentre en la parte inferior del lienzo.
SaucerSpriteCargar la imagen del platillo y establécela a "saucer.png".
BallEstablece el radio a 8, una velocidad inicial de 10 y coloca el color amarillo.
Label1Cambia el texto a "Score".
ScoreLabelCambia el texto a "0".
ClockCambia la propiedad TimerInterval a 3000.
Ahora que has configurado todas las propiedades esenciales, no dudes en cambiar los colores de los componentes que desees.

 

Vamos a mover el cohete

En este juego, el usuario moverá el cohete de lado a lado. Esto significa que sólo vamos a cambiar la coordeanada X del sprite del cohete. Para ello vamos a utilizar el when RocketSprite.Dragged. Cuando se arrastra el cohete, ajustaremos la coordenada X al CurrentX que detecta el dedo en la pantalla.

Comprueba el funcionamiento del cohete.

Programación del comportamiento del proyectil

Hay varias características que queremos que nuestros proyectiles tengan en este juego. Queremos que se disparen desde el cohetechoquen con el platillo, y sean invisibles después de la colisión.
Vamos a empezar con el bloque when Screen1.Initialize . Cuando se inicializa la pantalla, vamos a programar que el proyectil sea invisible. Haremos esto mediante el establecimiento de la propiedad de visibilidad del proyectil a " false".

A continuación, queremos asegurarnos de que el proyectil vuelve a aparecer cuando disparamos desde el cohete. Cuando tocamos el cohete, queremos que el proyectil se dispare hacia el platillo, lo haremos mediante el uso del controlador when RocketSprite.Touched. Cuando se toca el cohete, no sólo queremos establecer que seavisible, también queremos establecer la velocidad y el rumbo del proyectil. El águlo puede ser un valor entre 0 y 360 que indica en qué dirección debería moverse.90 es hacia arriba. La velocidad se mide en píxeles / seg.

Una vez que se dispara el proyectil, no puede disparar de nuevo. Tenemos que programar el proyectil para volver al cohete cuando disparamos. Podemos hacer esto usando un bloque de llamada call Proyectil.MoveTo .

La última cosa que necesitamos programar es lo que sucede cuando el proyectil choca con el platillo. Vamos a utilizar el controlador when Proyectil.CollidedWith. Este evento se produce cuando el proyectil choca con otro sprite. Dado que nuestro sprite de cohete está bloqueado en una coordenada Y de la parte inferior de la pantalla, el proyectil nunca chocará con el cohete y sólo con el platillo. En la colisión queremos que sucedan dos cosas, primero que la puntuación aumente en 1 y segundo que el proyectil se vuelva invisible.

Comprueba su funcionamiento.
Te habrás dado cuenta que cuando toca el platilloel proyectil se mueve a la parte superior de la pantalla y se queda atascado en ella hasta que se dispara de nuevo. Para hacer que el proyectil desaparezca cuando llega al borde superior de nuestro Canvas, tenemos que utilizar el controlador when Proyectil.EdgeReached.

Programación del botón Reset

A veces, los usuarios podrían querer reiniciar el juego y reiniciar su puntuación. Cuando esto suceda, es necesario establecer la puntuación de nuevo a 0.

Aumento de la dificultad. Cambio de la posición del platillo

Vamos a hacer el juego un poco más difícil !! Ahora, cuando el proyectil choca con el platillo, vamos a cambiar la ubicación del platillo. El platillo mantendrá el mismo valor Y por lo que sólo tendremos que cambiar la X. Podemos hacer esto usando el bloque de generar un número al azar.

Para hacerlo aún más difícil, también cambiaremos la posición del platillo cuando el temporizador se apaga.

Programa completo

Aquí está el programa completo SpaceInvaders.




Segunda parte.


Ahora que ya sabes hacer el programa y tienes conocimientos para ampliar la jugabilidad, diseña tu propio video juego estilo Space Invaders. Puedes cambiar los dibujos, velocidades, posiciones, y añadir fallos y sonidos. Demuestra que puedes ser un/a gran "desarrollador/a de videojuegos"

No hay comentarios:

Publicar un comentario

Puedes realizar tus comentarios aquí: