Anuncios

Bienvenidos sean a este post, en el post anterior le dimos la capacidad de disparar a nuestros enemigos pero ahora comenzaremos a defendernos.

Anuncios

Al igual que en el post anterior debemos crear un objeto para el laser con su respectivo sprite, para ello primero crearemos el sprite al cual llamaremos spr_laser_jugador, le asignaremos un tamaño de 4 x 8, abrimos el editor de imagen y hagan un imagen, les dejo un ejemplo

Anuncios

Una vez creado el sprite, modificamos el origen de Top Left a Middle Centre, y por ultimo modificamos al Mode de Automatic a Manual en el Collision Mask, recuerden que genera uno automaticamente pero pueden modificar a su placer, es decir que debemos hacer las modificaciones como vinimos trabajando hasta ahora, lo siguiente es crear el objeto para este sprite, lo llamaremos obj_laser_jugador, le asignaremos el sprite que generamos recien, con todo esto concluido agregaremos el primer evento, uno de tipo Create y una vez creado agregaremos el siguiente codigo:

speed = 10;
direction = 90;
Anuncios

En este caso lo usaremos para iniciar dos variables internas como son la velocidad (speed) del objeto y la direccion (direction) para que vaya siempre para arriba dado que nuestra nave avanza y retrocede pero no cambia donde apunta, con esto hecho agregaremos un nuevo evento de tipo Step al cual le agregaremos el siguiente codigo:

toque_enemigo = collision_rectangle(x, y, x + 3, y + 8,
		clase_enemigo, false, false);

if (toque_enemigo != noone)
{
	toque_enemigo.ps -= 5;
	instance_destroy();
}

if (y < 0) instance_destroy();
Anuncios
Anuncios

Primero crearemos una variable para almacenar la verificacion de colision que hacemos con collision_rectangle, de vuelta lo haremos contra clase_enemigo para que sea contra todos los hijos de la clase padre, con el valor obtenido usaremos un condicional donde verificamos si es distinto de noone (es decir que colisiono con alguien), si es verdadero disminuiremos en 5 el valor de ps que esta en cada posible enemigo, por ultimo destruiremos la instancia para que desaparezca, luego por fuera de esta condicional usaremos a otro para verificar si el valor de y es menor que 0, en caso de ser verdadero procedemos a destruir la instancia porque significa que salio de la pantalla o nivel, con esto tenemos cubierto las condiciones de nuestro laser con respecto a los enemigos y la pantalla, pasemos al objeto de la nave.

Anuncios

Para nuestra siguiente modificacion debemos hacer que se dispare el laser, para ello como dijimos volvemos al objeto de la nave, crearemos un nuevo evento Alarm, en este caso usaremos a Alarm 0, una vez generado le agregaremos la siguiente linea:

puede_disparar = true;
Anuncios

Esto nos servira para reestablecer el valor de puede_disparar, nuestra siguiente modificacion sera ir al evento Step donde agregaremos el siguiente bloque:

if (keyboard_check_pressed(vk_space) && puede_disparar)
{
	puede_disparar = false;
	alarm[0] = 15;
	instance_create_depth(x - 12, y - 8, 0, obj_laser_jugador);
	instance_create_depth(x + 11, y - 8, 0, obj_laser_jugador);
}
Anuncios

En este condicional verificamos si se presiono la tecla de la barra espaciadora y si puede_disparar esta en estado true, en caso de cumplirse ambas condiciones establecemos a puede_disparar como false y le espereamos 15 pasos con la alarma 0, una vez finalizado volvera a establecer a puede_disparar como true, recuerden que fue lo que hicimos anteriormente, por ultimo creamos dos instancias del objeto de nuestro laser, con esto agregamos la capacidad de poder disparar a nuestros enemigos cada cierto tiempo, probemos de compilarlo y ver como funciona mediante el siguiente video

Anuncios

En el video podemos ver como ahora si podemos defendernos y si prestan atencion podran ver en el momento que interceptamos uno de los lasers del enemigo con el nuestro, si bien ya tenemos un gran juego creado todavia estamos lejos de terminar con el mismo.

Anuncios

En resumen, hoy hemos agregado la capacidad de disparar a nuestra nave, hemos visto como disminuir la salud de nuestros enemigos, como hacer para que desaparezca tanto por contacto como por haberse excedido de la pantalla, tambien hemos visto como se siguen manteniendo todas nuestras caracteristicas anteriores pero ahora con un poco mas de justicia, espero les haya gustado porque esto se va a poner mejor en los proximos post y recuerden que pueden seguirme 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
pp258

Donación

Es para mantenimento del sitio, gracias!

$1.00