el caso es que yo tengo un objeto botiquin que me sube la vida y aparece si mato a los enemigos pero yo quiero que cuando aparezca de vaya desapareciendo poco a poco hasta que desaparezca por completo.
Gracias
Hola Sr.Mojon!
Este efecto se activa apenas se crea el objeto.
En el evento CREATE:
//El tiempo de vida máximo del objeto
time_max = 5 * room_speed;
/*
El tiempo de vida del objeto.
Si tu room_speed = 30, será de: 1 seg = 30 steps.
En este caso son 30 steps, por lo tanto durará 10 segundos.
ya que se debe multiplicar la cantidad de segundos que queremos
que dure el efecto por la velocidad de la room.
*/
//Usado como reloj
time = time_max;
En el evento STEP:
time--; //Bajar el contador
//Destruír el objeto si el contador llega a 0
if (time == 0) {instance_destroy();}
En el evento DRAW:
//Dibujar un efecto de desvanecimiento
draw_set_alpha(time/time_max);
//Dibujar el sprite del powerup
draw_sprite(spr_powerup,0,x,y);
//Dejar al valor alpha en 1 para que no afecte a otros objetos
draw_set_alpha(1);
Otro tipo de efecto es que se active cuando queden unos pocos segundos de vida al objeto. Para hacerlo cambia el código anterior en DRAW por este:
//Variable para cuando comience el efecto
//Nos seguimos refiriendo al tiempo en segundos multiplicado por la room_speed
var effect_time = 3 * room_speed;
//Si el tiempo restante es menor al tiempo donde comienza el efecto
if (time < effect_time){
draw_set_alpha(time/effect_time);
}
//Dibujar el sprite del powerup
draw_sprite(spr_powerup,0,x,y);
//Dejar al valor alpha en 1 para que no afecte a otros objetos
draw_set_alpha(1);
Te adjunto un proyecto con el efecto hecho.
Espero que te sirva :)