tengo este codigo en el step de mi personaje,
if vida<=0 and estado<>"muerto"
{estado="muerto";
alarm[0]=30;
effect_create_above(1,x,y,1,c_white);}
no se por q este codigo se convierte en un ciclo si le estoy cambiando el estado q es diferente a "muerto" a que si sea "muerto".
eso, segun yo, deberia dejar de repetir este ciclo
Por lo que yo se, para decir: "Es distinto de:" se usa: != y no <> como en VB.
no me sirvio con !=
Revisaste las variables? Que la variable se ponga en "muerto" cuando debe estarlo?
Y porque preguntas si la vida es menor o igual a 0 y aparte si la variable esta en "muerto"? No pongas dos cosas iguales en un if porque muchas veces se te puede complicar encontrar el error.
el personaje tiene varios estados
cuando la vida llega a cero cambia a estado="muerto" precisamente para q no se me forme un ciclo.
revise, y si, el estado queda en "muerto" y la vida es <=0
pero aun asi me sigue creando el ciclo, lo se por q me crea el efecto constantemente y no me ejecuta el codigo de la alarm[0]
Hasta que la vida no sea mayor a 0 o su estado cambie, la alarma va a ser 30 siempre, ya que se crea el bucle. Entiendes?
pero si la condicion es q estado sea diferente a "muerto" para que se cumpla el codigo, y para q no se repita paso el estado a "muerto".
no se por q vuelve y repite el ciclo si ya cambie la condicion q era necesarioa
if vida<1 and (estado!="muerto")
{
alarm[0]=3*room_speed;
effect_create_above(1,x,y,1,c_white);
estado="muerto";
}
Elvis, tu c?digo es m?s o menos equivalente.
El problema parece ser que el estado despu?s de cambiar a "muerto" cambia a otra cosa y enseguida el c?digo vuelve a ejecutarse. Yo pondr?a el c?digo as?:
[gml]if (vida <= 0 && estado != "muerto") {
show_message("estado = '" + estado + "'");
estado = "muerto";
alarm[0] = 30;
effect_create_above(1, x, y, 1, c_white);
}[/gml]
Ah? te pod?s fijar cu?l es el valor de estado cuando deber?a ser "muerto".
Gracias a ambos por responder, la verda es q ensaye ambas respuestas y sigue en lo mismo, no se de donde mas buscarle.
entonces f?jate que capas ese no es tu problema, tal ves en otro lado la condici?n de "muerto" sea otra que haces que te genere ese ciclo infinito seguro, en que parte lo pusiste?