Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: J.E.A en Junio 03, 2012, 05:09:42 PM

Título: Como hacer que mi barra de vida al llegar a 0, el nivel reinicie (Solucionado)
Publicado por: J.E.A en Junio 03, 2012, 05:09:42 PM
Tengo mi propia "Healthbar" (no es la interna del GM, es una propia XD) que son 6 cuadritos, y quisiera que al llegar a 0 vuelva a comenzar al principio del nivel

Mis codigos son estos


En el sistema de vida en su "Create" lo tengo así:

global.vital = 6;


En "Draw" lo tengo así

for(vt=0; vt<global.vital; vt+=1)
{
  draw_sprite_ext(spr_barradevida,0,view_xview[0]+32+(8*vt),view_yview[0]+29,1,1,90,c_white,1);
}





Ahora las acciones y eventos que tiene mi personaje


En el "Create" de mi personaje tengo esta variable de vida

global.vital=6;

La acción que le asigne a un enemigo en "Collision" es esta. (o sea, al chocar el enemigo conmigo me saca un cuadrito de vida)

if global.vital > 0 {global.vital-=1;}



Por si las dudas dejo el adjunto


Título: Re:Como hacer que mi barra de vida al llegar a 0 vuelva a reiniciar en el mismo niv
Publicado por: SobacoEnLlamas en Junio 03, 2012, 05:58:36 PM
espero haber entendido lo que preguntas, porque parece algo muy simple... que tal si pones que si la global.vital llega a cero (o menos de 1 mejor para que no haya errores de algun enemigo que te quite 2 puntos de golpe y pasde de 1 a -1 xD), pues vas y reseteas la room tal cual y poner de nuevo la variable a 6? si no sabes algo de eso con codigo, no te cortes con el drag&drop, que no muerde xD
Título: Re:Como hacer que mi barra de vida al llegar a 0 vuelva a reiniciar en el mismo niv
Publicado por: MaanuRP en Junio 03, 2012, 11:42:06 PM
Agrega un "else"

[gml]
else
{
room_restart()
}
[/gml]

Y te recomiendo que crees un script, asi no tendras que modificarlo en todos los eventos de colision.
Título: Re:Como hacer que mi barra de vida al llegar a 0 vuelva a reiniciar en el mismo niv
Publicado por: J.E.A en Junio 04, 2012, 06:12:02 PM
 8)Muchas gracias, pero me funciono sin el "else". El codigo me quedo así en el sistema de energía en su "Draw"

for(vt=0; vt<global.vital; vt+=1)
{
  draw_sprite_ext(sprite17,0,view_xview[0]+32+(8*vt),view_yview[0]+29,1,1,90,c_white,1);
}




Y le agrege este codigo como me habían dicho pero funciono sin "else"
if global.vital=0 (si tengo 0 de energía)
{
room_restart()
}


Ya voy entendiendo un poco mas GML. Antes no entenddía mucho, y ahora masomenos le empiezo a agarrar un poco la mano
Título: Re:Como hacer que mi barra de vida al llegar a 0, el nivel reinicie (Solucionado)
Publicado por: MaanuRP en Junio 04, 2012, 06:18:25 PM
Cita de: J.E.A en Junio 04, 2012, 06:12:02 PM
Y le agrege este codigo como me habían dicho pero funciono sin "else"
if global.vital=0 (si tengo 0 de energía)
{
room_restart()
}


Es casi lo mismo, solo que ahi ejecutas dos preguntas, con el "else" lo que haces es preguntar una sola vez, y dependiendo del resultado es la accion.