Anuncios

Bienvenidos sean a este post, ha llegado la hora de que nos disparen y para ello vamos a hacer un par de modificaciones.

Anuncios

Para esta nueva modificacion vamos a agregar un nuevo sprite para la nueva bala, deben hacerla de forma similar a la vista en el post anterior pero le daremos otro calor para diferenciarlas, el resto deberia ser exactamente lo mismo, pueden usar el nombre spr_BalaE para este sprite, les paso el que hice

Anuncios

Un consejo practico, van al Asset Browser seleccionan al Sprite (no al objeto) y presionen el boton derecho, seleccionen Duplicate, este hara aparecer un nuevo sprite y le cambian el nombre, por ejemplo como les sugire antes, una vez hecho esto vamos a proceder con la creacion del objeto.

Anuncios

Creamos el objeto y lo llamaremos obj_BalaEnIzq, lo vinculamos al sprite antes creado y lo hacemos solido, este objeto sera para cuando el enemigo dispare mirando a la izquierda, lo siguiente sera agregar un evento Create, dentro de este evento vamos a crear dos acciones:

  • Set Direction Variable, con el valor de 180
  • Set Speed, con el valor de 5
Anuncios

Esto hara que al momento de crear una instancia de este objeto se dirija hacia la izquierda con una velocidad de 5, obviamente mas rapida que el disparador, lo siguiente sera crear las colisiones, para ello agregamos dos eventos de colision, uno para la pared y otro para el jugador.

Anuncios

En ambos casos usaremos a If Object at Place, donde asignaremos al objeto que corresponda (obj_Prd o obj_Cj), para ambos casos la siguiente configuracion:

  • X: x (no tilde Relative)
  • Y: y (no tilde Relative)
  • Tilde Return List
Anuncios
Anuncios

Los dos primeros valores corresponden al eje X e Y de la bala con respecto a los del objeto informado en Object (ya sea obj_Prd o obj_Cj), el tilde Return List es para que pueda trabajar mejor con cada una de las instancias, esto sera para los dos condiciones de colisiones pero para el obj_Prd debemos agregarle la accion Destroy Instance para que desaparezca nuestra bala sino aclaramos nada mas toma a self y entiende que es a si misma, para el caso de obj_Cj debemos agregar las siguientes acciones al condicional:

  • Destroy Instance, para eliminar a la bala
  • Set Health, le tildamos a Relative y le asignamos el valor de -15 para disminuir la salud de nuestro heroe, presionen la flecha hacia abajo para asignarle Other
  • Jump To Start, sera para volver a la posicion inicial y debemos usar la flecha hacia abajo para elegir a obj_Cj dentro de Objects
Anuncios
Anuncios

Con esto ya tenemos una bala que va en una direccion, tiene una velocidad y a su vez contempla las colisiones contra la pared y el jugador, podemos tomar dos opciones o creamos un nuevo objeto y hacemos todos los pasos anteriores o lo duplicamos, en cualquiera de los dos casos lo llamaremos obj_BalaEnDer, y deberian modificar en el evento Create la accion Set Direction Variable, el valor de Direction de 180 a 0 para que vaya a la derecha, el resto debe quedar de la misma forma, ahora nos resta crear dos objetos mas, la bala hacia arriba y hacia abajo, para ello vamos a crear o duplicar alguno de los objetos anteriores.

Anuncios

Vamos a hacer el primero y lo llamaremos obj_BalaEnArr, la cual ira para arriba, en el evento Create modificaremos el Set Direction Variable, en este caso estableceremos a Direction con 90, las siguientes modificaciones deben ser exactamente iguales a las anteriores, si lo duplicaron con modificar la Direction ya esta, si lo crearon deben agregar todas las colisiones, una vez creado este nuevo objeto les recomiendo duplicarlo y llamarlo obj_BalaEnAba y en este caso modificaremos a Direction de Create con el valor de 270, para que vaya hacia abajo, mediante el siguiente video podran ver como se duplica

Anuncios

Con esto ya tenemos los cuatro objetos para que nuestros enemigos disparen, solo nos falta agregar la capacidad de disparar.

Anuncios
Anuncios

Antes de comenzar con nuestro codigo nuevo debemos ver un par de temas, el primero va a ser que nuestros enemigos deben disparar en la direccion que se movilicen, tambien que disparen de forma al azar y no de forma constante, para esto vamos a implementar un par de cosas pero que seran muy divertidas, vamos primero a nuestro objeto obj_EnemHor e iremos al evento Create, en este caso agregaremos una variable y para ello usaremos a Assign Variable de las acciones Common, le asignaremos el nombre alazar y el valor en 0, luego agregaremos el evento Step y otro evento Step, una vez hecho esto agregaremos la primera accion.

Anuncios

La primera accion que agregaremos sera Get Random Number de las acciones Random, esta accion la configuraremos de la siguiente forma:

  • Type: Integer
  • Minimum: 0
  • Maximum: 200
  • Target: alazar
Anuncios

Con esto le diremos que genere un numero al azar entro 0 y 200, el valor obtenido lo asignara a la variable alazar, lo siguiente que agregaremos sera un condicional donde verifica si alazar es igual a 123, en caso de ser cierto ejecutara otro bloque, en este caso le adicionamos otro condicional donde le diremos que verifique si Drection es igual a 180, en caso de ser verdadero usaremos a Create Instance de Instances y lo configuraremos de la siguiente manera:

  • Object: obj_BalaEnIzq
  • X: x
  • Y: y + (sprite_height / 2)
  • Layer: “Instances”
Anuncios

Esto hara que se genere una nueva instancia del objeto de la bala que se dirige a la izquierda y lo ubicamos a un costado y desde la mitad del sprite (gracias a la formula de Y), debajo del condicional anterior agregaremos un else para que evalue la condicion cuando la direccion no es de 180, volvemos a agregar otro Create Instance pero con la siguiente configuracion:

  • Object: obj_BalaEnDer
  • X: x + sprite_width
  • Y: y + (sprite_height / 2)
  • Layer: “Instances”
Anuncios
Anuncios

Es basicamente igual al anterior solo que le informamos el otro objeto y ahora al eje X le sumaremos el ancho del sprite para que inicie desde el otro lado y no atraviese a nuestro enemigo, lo siguiente sera crear los disparos laterales y para ello iremos a obj_EnemVert donde agregaremos la variable alazar en el evento Create, para hacer exactamente lo mismo que en el otro objeto, luego volveremos a agregar el evento Step y otra vez el generador de numeros al azar, los mismos condicionales primero para verificar que el numero en alazar sea 123 y luego el condicional de direccion pero debemos modificar levemente las instancias que hagamos, y obviamente la direccion del condicional donde usamos a 180 debemos usar 90, y la instancia para este condicional la configuraremos de esta forma:

  • Object: obj_BalaEnArr
  • X: x + (sprite_width / 2)
  • Y: y
  • Layer: “Instances”
Anuncios

La X sera para ubicarla en el centro del sprite, debemos agregar un else con otro Create Instance y lo configuraremos de esta manera:

  • Object: obj_BalaEnAba
  • X: x + (sprite_width / 2)
  • Y: y + sprite_height
  • Layer: “Instances”
Anuncios

En el siguiente video les muestro estas modificaciones recien comentadas

Anuncios

Con todo esto podemos pasar a nuestro videojuego como esta hasta ahora, veamos el siguiente video

Anuncios

Si lograron lo mismo que en el video, Enhorabuena!!! Estamos yendo por el buen camino, y ya tenemos un juego mas competitivo que cualquier otro.

Anuncios

En resumen, hoy hemos le hemos dado la capacidad de disparar a nuestro enemigos, hemos creado los objetos y todas las acciones necesarias para que nuestros enemigos tengan una posibilidad mas de dañarnos, con esta modificacion ya logramos un juego un poco mas divertido pero todavia nos faltan un par de cosas, espero les haya gustado sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios

Tengo un Patreon donde podes acceder de manera exclusiva a material para este blog antes de ser publicado, sigue los pasos del link para saber como.

Donación

Es para mantenimento del sitio, gracias!

$1.00