hice una alarma para que un enemigo que determina cuanto tiempo debe de estar herido pero esta no avanza solo se queda en el numero de steps e estado ya moviendole pero ya me perdi no tengo idea porque mi alarma no se mueve
este es mi codigo:
Information about object: obj_spike
Sprite: spr_spike
Solid: true
Visible: true
Depth: 0
Persistent: false
Parent: obj_enemigo_padre_terrestre
Children:
Mask:
No Physics Object
Create Event:
execute code:
///Variables de Control
life = 2;
//variables de movimiento
hsp = 0;
vsp = 0;
move_spd = 1;
fall_spd = 1;
grav = 1;
hsp=choose(move_spd,-move_spd);
image_speed=0.3;
//control de comportamiento
im_hurt = false;
im_dead = false;
Alarm Event for alarm 0:
execute code:
im_hurt=false;
Step Event:
execute code:
///Movimiento
x+=hsp;
y+=vsp;
grounded = place_meeting (x,y+1,obj_block);
col_left = place_meeting (x-1,y,obj_block);
col_right = place_meeting (x+1,y,obj_block);
no_floor_left = !place_meeting (x-16,y+1,obj_block);
no_floor_right = !place_meeting (x+16,y+1,obj_block);
//GRAVEDAD
if (!grounded) {vsp+=fall_spd;}
else {vsp=0;}
//COLISION HORIZONTAL
if (col_left) {hsp+=move_spd;} //Izquierda
if (col_right) {hsp-=move_spd;} //Derecha
//Freno de Caida
if (no_floor_left) {hsp+=move_spd;} //Izquierda
if (no_floor_right) {hsp-=move_spd;} //Derecha
//GRAFICO
if (hsp>0) {image_xscale=1}
else {image_xscale=-1}
//HERIDO
if (im_hurt=false) {image_blend=-1;}
else {image_blend=c_red;}
if (im_hurt=true){alarm[0]=30}
Draw Event:
execute code:
draw_self();
draw_text(x,y-20,(alarm[0]))
Lo de siempre, estas ejecutando el código de alarma en bucle, por lo tanto alarm0 siempre es = a 30.
if (im_hurt=true){alarm[0]=30}
Cambialo a
if (im_hurt=true) && (alarma[0] == -1) {alarm[0]=30}
Apenas es la primera alarma que utilizo en toda mi vida, no sabia que se podian producir bucles con ellas
Muchísimas Gracias Amigo :D :D
Con todo se pueden producir bucles, básicamente porque el evento step en sí es un bucle xd