Incluir un proyectil en la escena y dispararlo

Ahora vas a incluir en la escena un proyectil que se disparará cada vez que se pulse la tecla “Space”.

Crea un nuevo actor, y sitúalo fuera de la escena (fuera del rectángulo que delimita la zona visible del juego), ya que sólo se verá cada vez que pulses la tecla “Space. Este actor, por lo tanto, habrá que definirlo inicialmente como un actor inactivo. Para ello, el botón  que aparece en la zona superior de la ventana de propiedades del actor “Properties”, deberá desactivarse boton_inactivo, ya que por defecto está activoboton_verde. De este modo, el actor estará visible únicamente en la ventana de edición del juego y no lo estará cuando se ejecute el juego. Además, las reglas que tenga asociadas no se ejecutarán mientras el actor no se active.

Configura la pestaña “Información sobre la visualización del actor” como se muestra a continuación.

disparo

 

CONFIGURAR EL MOVIMIENTO DEL PROYECTIL

Crear una regla al actor “disparo” y a continuación, entra en el editor de reglas. Pon a la regla el nombre “movimiento proyectil”.

  • Arrastra el botón de acción “Translate” accion_translate debajo del círculo verde en la zona superior del grafo. Observa que esta acción no se realiza como consecuencia de que se cumpla o no una condición, esta acción se realizará siempre que esté activa la regla (punto verde superior) o el actor.

mover7

Poner 0 en “angle“, significa que el proyectil no realiza ningún giro en su movimiento, se mueve hacia la derecha, en un ángulo de 0 grados.

PROGRAMACIÓN DEL DISPARO DEL PROYECTIL

Ya está definido el actor “disparo” y su movimiento, pero falta programar cuándo y cómo el proyectil aparece en el juego. A continuación, se va a configurar la regla que hace que la nave dispare el proyectil.

  • Añade una nueva regla al actor “nave”, entra en el editor de reglas de Gamesonomy e introduce como nombre de esta regla “disparo”.
  • Arrastra el botón de condición “key”  tecla  debajo del círculo verde y define la condición de esta regla.

Para que el proyectil aparezca en la escena y se mueva cada vez que se pulse la tecla “Space”, es necesario replicar el actor que lo representa en una determinada posición.

  • Arrastra el botón de acción Spawn” accion_spawn que permite crear réplicas de un actor en la escena, a la salida derecha de la condición tecla Space pulsada. Configúralo como muestra la figura.

condicion_spawn_shooter

En esta acción se deben configurar tres cosas: el actor a replicar, en este caso, “disparo”, la posición (x,y) donde aparecerá  y el ángulo que determina la dirección de movimiento.

La posición (x,y) es relativa al actor que la crea. Es decir, (0,0) sería el centro de la nave. Por esto y teniendo en cuenta que el ancho del actor “nave” es 180 píxeles, poner 90 en la casilla “x” significa que la posición de la que sale el proyectil está situada a 90 píxeles a la derecha del centro geométrico del actor “nave”. De este modo, el actor disparo siempre saldrá de la punta de la nave. Como la “y no la cambiamos, en vertical saldrá del centro  de la nave. 

Prueba la regla. Si el disparo sale por delante de la imagen de la nave, entra en la lista de actores “Cast” y cambia su orden, de modo que el actor “disparo” este por debajo del actor “nave”.

¡Recuerda! El orden en que se crean los actores es importante. Si hay dos actores situados en la misma posición de la escena, estará por delante el que se haya creado antes. Verás este orden en la lista de actores “Cast”. Podrás alterar este orden arrastrando el actor a la posición que desees que ocupe en esta lista.

Para que la escena quede más completa, antes de seguir programando este juego, vamos a poner un fondo a la escena.

  • Introduce un actor en la escena. Entra en su ventana Properties y asegúrate de que esté activo (boton_verde).
  • Selecciona la pestaña “Información sobre la visualización del actor” y configúralo como se muestra a continuación.

fondo

Si el fondo sale por delante del resto de actores, entra en la lista de actores “Cast” y cambia su orden, de modo que el actor “fondo” sea el último de la pila.

mover9

A continuación, seguiremos mejorando el comportamiento del proyectil. Una vez que el proyectil se ha disparado, es interesante poner un tope para que no atraviese toda la pantalla y parezca que su movimiento no tiene fin. Para ello, incluirás un actor vacío en la escena que simule una pared. Cada vez que el proyectil choque contra esta pared, éste se destruirá.

Inserta un actor en la escena y sitúalo a la derecha como muestra la siguiente figura.

shooter_pared_derecha

Entra en la ventana Properties del actor, cámbiale el nombre a right y recuerda asignarle una etiqueta (“right”) y configura su “Información básica”

shooter_right_prop

Para controlar si el proyectil choca contra la pared, entra de nuevo en la regla “movimiento proyectil“, que pertenece al actor  “disparo”, para completarla.

  • Arrastra el botón de condición “Collides” debajo del botón de acción “Translate”. Indica el actor contra el que vas a controlar la colisión, seleccionando su etiqueta en la casilla “tag”, en este caso se trata del actor etiquetado como right”, que es el que representa la pared.

shooter_choque_pared

  • Arrastra el botón de acción Destroy accion_destroy a la salida derecha de la condiciónCollides”.

shooter_choque_destroy

Recuerda!!! Pones etiquetas a un actor para controlar si choca contra otro actor.

Prueba el juego y verás como el proyectil desaparece una vez choca con el actor “right”.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s