Bienvenidos sean a este post, hasta el post anterior hemos creado un juego hecho y derecho pero vamos a darle un poco mas de emocion y para ello vamos a darle la posibilidad de disparar a nuestro personaje.
Lo primero que haremos es crear un nuevo Sprite, al cual llamaremos spr_Bala, le establecemos un tamaño de 8 x 8 y al momento de Editar la imagen, hagan un circulo pintado de blanco, por ejemplo, les dejo como quedo el mio

No necesitamos agregar mas imagenes, tal como en el caso de las paredes, lo siguiente sera ir a la opcion Collision Mask, busquen la opcion Mode y pasenla de Automatic a Manual, el resto se configura solo, para nuestro siguiente paso sera crear el objeto que contendra este sprite.
Creamos un nuevo objeto, como hasta ahora, lo llamaremos obj_BalaIzq, le asignaremos el Sprite que creamos anteriormente, y por ultimo lo asignamos como Solido, nuestro siguiente paso sera agregar un evento, en este caso agregaremos cuatro eventos de colision; uno por cada enemigo, otro para la pared y para el momento de la creacion, en esta ocasion solo agregaremos los eventos de colision, una vez agregados los eventos deberemos agregar dos acciones a cada uno de los enemigos, tomemos como ejemplo al obj_EnemVert.

Como dijimos vamos a obj_EnemVert y agregaremos la accion If Object At Place, lo configuraremos de la siguiente manera:
- Object: obj_EnemVert
- X: x
- Y: y
- Return List: Tildado
Este condicional verifica que el objeto coincide con los ejes del objeto de la bala para luego proceder a ejecutar dos acciones, nuestro siguiente paso sera agregar estas dos acciones, las dos son la misma pero para distintos elementos, la accion es Destroy Instance que se encuentra en Instances, nos debera quedar de la siguiente manera

Si ven en las instancias llamada Destroy Instance deben apretar la flecha hacia abajo, aparecera una nueva ventana y en esta deben seleccionar para una de las instancia la opcion de Self y para la otra other, uno servira para desaparecer la bala o la instancia donde se detecto esta situacion y el otro para desaparecer al enemigo, esto mismo deberan hacerlo para el evento del objeto obj_EnemHor, obviamente reemplazando al objeto correspondiente pero el resto es exactamente lo mismo, el unico que varia es el tema de la pared, para este caso volvemos a seleccionar el condicional de colision pero lo configuraremos de la siguiente manera:
- Object: obj_Prd
- X: hspeed (Tilden Relative)
- Y: 0
- Return List: Tildado
Lo unico que deben hacer es agregarle la accion Destroy Instance y nada mas, en esto caso usaremos uno solo porque solo queremos desaparecer la bala, con esto cubrimos las colisiones, por ultimo debemos agregar un evento Create que sera el encargado de asignar tanto la direccion como la velocidad, para ello agregaron la accion Set Direction Variable con el valor de 180 y Set Speed con un valor de 5, con esto concluimos la creacion de la bala que ira a la izquierda, nuestro siguiente paso sera repetir la misma creacion de objeto que hicimos recien pero lo llamaremos obj_BalaDer y variara en el evento Create la direccion que sera de 0 y el resto queda absolutamente de la misma forma, con esto ya tenemos dos objetos encargados de generar una bala para cada lado pasemos a agregar la accion de disparar.
Para este debemos volver a nuestro objeto obj_Cj, en este debemos agregar un nuevo evento, seleccionen Key Down -> Space, este evento se encargara de verificar cada vez que apretemos la barra espaciadora, nuestro siguiente paso sera agregar las acciones necesarias para poder usarlas, primero agregaremos a If Variable de las acciones de Common, este condicional lo configuraremos de esta manera:
- Variable: direction
- Is: Equal
- Value: 180
A este condicional le agregaremos una accion llamada Create Instance de las acciones Instances, en este nuevo cuadro completaremos sus campos de la siguiente manera:
- Object: obj_BalaIzq
- X: x
- Y: y + (sprite_height/2)
- Layer: «Instances»
El resto quedara como aparece, con esto generamos una nueva instancia del objeto obj_BalaIzq la cual cada una sera independiente de la otra, esto nos permitira disparar a discrecion sin tener inconvenientes, a este condicional le agregaremos un else donde le diremos que genere una nueva instancia pero esta vez de obj_BalaDer y para ello lo configuraremos de la siguiente manera:
- Object: obj_BalaDer
- X: x + sprite_width
- Y: y + (sprite_height/2)
- Layer: «Instances»
Con estas dos instancias creadas nos quedara de la siguiente manera

Probemos de compilarlo y ver como se comporta, tal como se ve en el siguiente video
En resumen, hoy hemos agregado al jugador la posibilidad de poder disparar balas, hemos creado las balas, las colisiones necesarias tanto para las balas como los objetos, hemos agregado las condiciones para poder disparar y no morir en el intento xD, 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.
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
