Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: sketch_turner en Enero 09, 2015, 03:38:51 PM

Título: Problema con muerte del player y de zombi [SOLUCIONADO]
Publicado por: sketch_turner en Enero 09, 2015, 03:38:51 PM
hola amigos tengo un problema que no puedo resolver con lo que es la muerte del jugador,creé un sprite de este ya muerto una vez que su salud llega a 0,entonces en el codigo de colision con el zombi puse lo siguiente:

health-=1;
if(health<=0)
{
  sprite_index=spr_playerdead;
  room_goto(rm_highscore);
}

el problema es que al hacer esto cuando muero directamente el juego me envia al room del highscore y no veo que se cambie el sprite del jugador,no me sale,ahora con lo del zombi creé tambien un sprite de el zombi caido y muerto y el codigo es este:

//COLISION CON BALA:

sprite_index=spr_zombidead;
alarm[0]=150;
instance_create(x+0,y+0,obj_sangre);

//ALARMA 0:

instance_destroy();

el asunto aca es que de hecho el sprite se cambia al colisionar la bala con el zombi pero el sprite se sigue moviendo durante los segundos de la alarma y queda horrible,no quiero eso,me podrian ayudar? desde ya gracias
Título: Re:Problema con muerte del player y de zombi
Publicado por: Iros en Enero 09, 2015, 05:27:54 PM
En el primer caso usá una alarma para cambiar de room, te quedaría algo así:

[gml]health-=1;
if(health<=0)
{
  sprite_index=spr_playerdead;
  alarm[1] = room_speed * 2; //Esto sería dos segundos, cambialo por lo que te parezca.
}[/gml]

ALARM 1:
[gml]room_goto(rm_highscore);[/gml]

En el segundo caso ponele image_speed = 0; y ya no tendrías el problema de cambio de sub imágenes.
Título: Re:Problema con muerte del player y de zombi
Publicado por: sketch_turner en Enero 09, 2015, 11:23:27 PM
Cita de: Iros en Enero 09, 2015, 05:27:54 PM
En el primer caso usá una alarma para cambiar de room, te quedaría algo así:

[gml]health-=1;
if(health<=0)
{
  sprite_index=spr_playerdead;
  alarm[1] = room_speed * 2; //Esto sería dos segundos, cambialo por lo que te parezca.
}[/gml]

ALARM 1:
[gml]room_goto(rm_highscore);[/gml]

En el segundo caso ponele image_speed = 0; y ya no tendrías el problema de cambio de sub imágenes.

camarada ante todo gracias por tomarte la molestia de responder,te cuento que probé lo del jugador y funciona a medias,se cambia el sprite pero si uno toca las flechas se mueve y ademas queda la imagen del nivel o sea no me envia al room del highscore como debe ser,deberia crear un objeto del jugador muerto y poner mejor instance_create(x,y,obj_dead); ?
Título: Re:Problema con muerte del player y de zombi
Publicado por: Iros en Enero 09, 2015, 11:57:06 PM
En el evento Step del personaje tendrías que poner un condicional entre todas las acciones de movimientos quedando algo así:

[gml]
if (health > 0) {
   //Poner acá todas las acciones de movimiento y demás que no queres que se ejecuten cuando el personaje muera.
}
[/gml]

Y en cuanto a que no te envía al room de highscore tendrías que comprobar que la alarma se ejecuta, el código modificado quedaría así:

[gml]
health-=1;
if(health<=0)
{
  sprite_index=spr_playerdead;
  if (alarm[1] < 0 ) {
      alarm[1] = room_speed * 2; //Esto sería dos segundos, cambialo por lo que te parezca.
  }
}
[/gml]

Con ese IF estás comprobando que la alarma se haya terminado de ejecutar en una instancia anterior, es decir que esté seteada a cero. Si la alarma está en cero se ejecuta.
Título: Re:Problema con muerte del player y de zombi
Publicado por: sketch_turner en Enero 10, 2015, 12:52:11 AM
Cita de: Iros en Enero 09, 2015, 11:57:06 PM
En el evento Step del personaje tendrías que poner un condicional entre todas las acciones de movimientos quedando algo así:

[gml]
if (health > 0) {
   //Poner acá todas las acciones de movimiento y demás que no queres que se ejecuten cuando el personaje muera.
}
[/gml]

Y en cuanto a que no te envía al room de highscore tendrías que comprobar que la alarma se ejecuta, el código modificado quedaría así:

[gml]
health-=1;
if(health<=0)
{
  sprite_index=spr_playerdead;
  if (alarm[1] < 0 ) {
      alarm[1] = room_speed * 2; //Esto sería dos segundos, cambialo por lo que te parezca.
  }
}
[/gml]

Con ese IF estás comprobando que la alarma se haya terminado de ejecutar en una instancia anterior, es decir que esté seteada a cero. Si la alarma está en cero se ejecuta.

no funciona amigo,se queda en el room del nivel
Título: Re:Problema con muerte del player y de zombi
Publicado por: Iros en Enero 10, 2015, 01:00:44 AM
¿Pusiste el room_goto en el evento Alarm 1 del personaje? Porque tendría que funcionar al menos que no exista ese escenario.
Título: Re:Problema con muerte del player y de zombi
Publicado por: sketch_turner en Enero 10, 2015, 01:03:55 AM
Cita de: Iros en Enero 10, 2015, 01:00:44 AM
¿Pusiste el room_goto en el evento Alarm 1 del personaje? Porque tendría que funcionar al menos que no exista ese escenario.

si si está puesto eso
Título: Re:Problema con muerte del player y de zombi
Publicado por: Iros en Enero 10, 2015, 01:11:13 AM
Si queres pasame el editable y le doy una mirada a ver en que está fallando.
Título: Re:Problema con muerte del player y de zombi
Publicado por: sketch_turner en Enero 10, 2015, 01:20:52 AM
Cita de: Iros en Enero 10, 2015, 01:11:13 AM
Si queres pasame el editable y le doy una mirada a ver en que está fallando.

funciona! perdon,fue error mio,me confundi de alarma ya que tenia dos ya hechas anteriormente,lo que si me falta aun es el otro punto,lo del movimiento
Título: Re:Problema con muerte del player y de zombi
Publicado por: sketch_turner en Enero 10, 2015, 07:28:46 AM
lo solucioné! ya esta todo bien,puse spd(velocidad) a 0 cuando cambia de objeto player a objeto dead,asi que no se mueve para nada,fue de gran ayuda lo que me dijiste,muchisimas gracias camarada