Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: seed86 en Noviembre 07, 2013, 12:27:41 AM

Título: Parpadeo del sprite al recibir daño.
Publicado por: seed86 en Noviembre 07, 2013, 12:27:41 AM
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;}
}

Título: Re:Parpadeo del sprite al recibir daño.
Publicado por: djslimcharly en Noviembre 07, 2013, 02:09:44 AM
checa estos videos espero te sirvan

Título: Re:Parpadeo del sprite al recibir daño.
Publicado por: Iros en Noviembre 07, 2013, 03:30:39 AM
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.
Título: Re:Parpadeo del sprite al recibir daño.
Publicado por: seed86 en Noviembre 07, 2013, 02:14:10 PM
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.
Título: Re:Parpadeo del sprite al recibir daño.
Publicado por: Iros en Noviembre 07, 2013, 04:50:26 PM
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
Título: Re:Parpadeo del sprite al recibir daño. (Resuelto)
Publicado por: seed86 en Noviembre 08, 2013, 01:44:50 AM
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)
Título: Re:Parpadeo del sprite al recibir daño.
Publicado por: Iros en Noviembre 08, 2013, 03:12:17 AM
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