Noticias

Se ha publicado un nuevo servicio, el Portal de Juegos Online

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Autor Tema: Ayuda!! Mi alarma no se activa  (Leído 227 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado GaryVega

en: Febrero 26, 2019, 07:24:06 am
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]))



 


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado kostra

  • Legendario
  • *
  • Puntos: 2423
  • Mensajes: 2.007
  • Agradecido: 85 veces
  • Sexo: Femenino
  • Sé literalmente el sentido de la vida.
    • Ver Perfil
Respuesta #1 en: Febrero 26, 2019, 01:09:30 pm
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}

"ola k ase clickarme o k ase"
la imagen no se quita xD
 
Los siguientes usuarios dieron las gracias a este tema: GaryVega


Desconectado GaryVega

Respuesta #2 en: Febrero 27, 2019, 03:29:15 am
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

 


Desconectado kostra

  • Legendario
  • *
  • Puntos: 2423
  • Mensajes: 2.007
  • Agradecido: 85 veces
  • Sexo: Femenino
  • Sé literalmente el sentido de la vida.
    • Ver Perfil
Respuesta #3 en: Febrero 27, 2019, 03:48:06 am
Con todo se pueden producir bucles, básicamente porque el evento step en sí es un bucle xd

"ola k ase clickarme o k ase"
la imagen no se quita xD