Pues en muchos juegos hay elementos de regeneración, tales como vida, energía, magia, munición etc.
Lo que busco en este caso seria regeneración de vida, y he pensado en establecer lo siguiente.
-Una condición de que la vida se recupere de forma continua, lo que significa que va sumando mientras pasa el tiempo.
-Un limite, pues en algún momento debe parar de generar vida (salud), ya que seria raro que la vida sea 100% y pase a valores superiores.
Mi jugador tendría una vida 18(100%) como máximo y un regenerador que lo recuperara 1 de vida cuando pasen 30 step
global. vida = 18;
regenerador = 1
En STEP estaría el regenerador, cuando este sea == 30 tendría que dar un global. vida += 1 y volver el regenerador a 0 para repetir el ciclo, pero claro el mayor problema estaría en como detengo el ciclo? en algún momento el jugador podría llegar a tener tanta vida que sea casi imposible de matar.
La verdad podría servir para la regeneración de muchos elementos que mencione con anterioridad, pero analizando 1 da pie a organizar y complementar con otros, lo mas parecido que tengo a esto es el objeto_Tiempo, por lo que creo que debe ser muy similar.
Puedes usar alarmas, y simplemente comprobar que la vida sea menor a 18 antes de regenerarle.
[gml]
///Evento create
global.vidab = 18; //Esta es la vida original, no debe modificarse en juego.
global.vida = global.vidab; //Esta es la vida que se modificará en el juego
regenerador = 1;
alarm[0] = room_speed; //Activar una alarma para regenerar cada segundo.
[/gml]
[gml]
///Evento alarm 0
alarm[0] = room_speed;
if(global.vida <= (global.vidab - regenerador)) //Si tiene menos vida de la original (vida máxima)
{
global.vida += regenerador;
}
[/gml]
Obviamente, si ya tienes utilizando la alarma 0, debes usar otra.
Cita de: NiuWeb en Septiembre 10, 2017, 06:11:57 AM
Puedes usar alarmas, y simplemente comprobar que la vida sea menor a 18 antes de regenerarle.
[gml]
///Evento create
global.vidab = 18; //Esta es la vida original, no debe modificarse en juego.
global.vida = global.vidab; //Esta es la vida que se modificará en el juego
regenerador = 1;
alarm[0] = room_speed; //Activar una alarma para regenerar cada segundo.
[/gml]
[gml]
///Evento alarm 0
alarm[0] = room_speed;
if(global.vida <= (global.vidab - regenerador)) //Si tiene menos vida de la original (vida máxima)
{
global.vida += regenerador;
}
[/gml]
Obviamente, si ya tienes utilizando la alarma 0, debes usar otra.
Agradecido :).
Vaya tu código mas un pequeño orden que tuve que hacer, formo una buena regeneración por segundo, salio mas fácil de solucionar de lo que pensaba en un inicio.