Por ejemplo, mi personaje, que tiene 100 de vida ha sido golpeado y pierde 20 puntos.
Normalmente en la vida saltaría de 100 a 80.
¿Hay alguna manera, sin alterar la velocidad de la room, de que pierda progresivamente esos 20 puntos? Como en Pokémon.

También me gustaría saber cómo alterar la velocidad de la bajada o subida de dicha variable.

Gracias de antemano :D
Me estoy montando un plataformas medieval bastante interesante. O eso creo.

declaras vida = 100, drawVida = 100.

vida es la variable real, que lleva la vida, la que sumas y restas, la que mueres si llega a 0.
drawVida es la que SE DIBUJA. Entonces, en step del objeto que lleve la vida pones:

[gml]if (drawVida > vida) {
   drawVida -= 1; //Velocidad de bajada = 1 por step
   if (drawVida < vida) drawVida = vida;
} else if (drawVida < vida) {
   drawVida += 1; //velocidad de subida = 1 por step
   if (drawVida > vida) drawVida = vida;
}[/gml]

y a la hora de mostrar o dibujar la vida, usa la variable drawVida. Y al aumentar la vida, ésta también aumentará lentamente!

También se pueden usar decimales para aumentar/disminuír el valor de la vida. Probablemente restar en 1 es mucho todavía para el efecto que quieres.

Vale, me ha servido, muchas gracias a los dos :D
Me estoy montando un plataformas medieval bastante interesante. O eso creo.

Cita de: penumbra en Marzo 08, 2014, 09:36:32 PM
También se pueden usar decimales para aumentar/disminuír el valor de la vida. Probablemente restar en 1 es mucho todavía para el efecto que quieres.

Es muy común el usar valores de 100, o que comiencen en 100, para vidas y demás cosas (si él no lo hubiera dicho yo lo hubiera supuesto, no recuerdo un juego en que yo no haya usado 100 para la vida), yo mismo en mi juego tengo como vida y energía iniciales 100, los enemigos igual, de ahí que el restar 1 lo vea correcto y le sirva xDD yo mismo tengo como regeneración de energía 30% por segundo, que en los valores iniciales es 1 por step, como le dije,  y como coste de modo tenebroso y de mantener el bloqueo coste 30 por segundo (sí, adivina, 1 por step) xDDD
(suponiendo room_speed = 30, si fuera 60 iría algo rápido pero también sería aceptable, sino todo es cuestión de bajarlo  :( )