Hola.
He programado el sistema de daño del juego. Cuando el personaje entra en contacto con un enemigo u objeto dañino, esta da un salto hacia atrás, el alpha del personaje cabia a 0.5 (semitransparente) y se hace invencible durante un corto periodo de tiempo.
Me gustaría saber cómo podría hacer que mientras el personaje es invencible que en vez de ser semitransparente todo este tiempo (como lo tengo programado) que parpadee cada uno o dos frames cambiando su alpha de 0.5 a 1. He probado con dos alarmas que hagan un bucle entre sí pero no lo he conseguido.
De momento pongo el código que tengo:
STEP del personaje:
//Damage
if hurt=1{
alarm[3]=5; //break the back jump
image_alpha=0.5;
}else{
image_alpha=1;
alarm[2]=30; // make the character invincible for a while
}
STEP del enemigo
if (obj_hero_A.hurt = 0)
{
global.hp -= 1; //damage to character
audio_play_sound(sd_miniscream, 1, false);
obj_hero_A.hurt = 1;
obj_hero_A.block_keys = 1;
alarm[0] = 6;
if (x < other.x){obj_hero_A.hsp = 30; obj_hero_A.vsp = -15;}
if (x > other.x){obj_hero_A.hsp = -30; obj_hero_A.vsp = -15;}
}
checa estos videos espero te sirvan
Acá te dejo un ejemplo que acabo de hacer con una sola alarma y un contador.
https://www.dropbox.com/s/ibnd545heuyp00j/ejemploParpadea.gmk
El contador se modifica desde la alarma y define cuantas veces va a parpadear el objeto.
[EDIT]
No me di cuenta que era en GMS. Lo que tenes que hacer es importar el archivo *.gmk y listo ;D.
Gracias Iros, pero con tu sistema el parpadeo solo funciona una vez. la segunda vez que recibe daño el alpha del personaje no cambia.
O.o Es verdad!! Ahora lo arreglo y actualizo.
[EDIT]
Listo, arreglado, acá te dejo nuevamente el enlace:
https://www.dropbox.com/s/ibnd545heuyp00j/ejemploParpadea.gmk
Lo que me faltó fue reiniciar el contador dentro del else de la alarma xD
Muchísimas gracias Iros. Si lo deseas tu nombre aparecerá en los créditos del juego (si algún día ve la luz xd)
No hay de que. En cuanto a eso del nombre...no está mal xD
Cualquier otra duda que tengas posteala y te vamos a ayudar ;D