Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: shaggymon en Octubre 04, 2011, 12:23:23 AM

Título: Barras de vida circular
Publicado por: shaggymon en Octubre 04, 2011, 12:23:23 AM
Holap, para el juego que estamos haciendo con un amigo, queriamos que nuestra barra de vida fuera circular, y que al perder una vida los circulos que tiene la imagen se volvieran negros, probe el metodo que sale en los tutoriales de la pagina pero la imagen se me repite 7 veces xD , alguien conoce algun metodo? ..
Título: Re: Barras de vida circular
Publicado por: MaanuRP en Octubre 04, 2011, 01:01:30 AM
Mmm lo unico que se me ocurre es que sincronices.

Esa imagen va a estar situada en "view_xview" y "view_yview" cierto? Por lo que cada circulo va a estar situado en "view_xview + x" y view_yview + y", no?

Por lo que solo te quedaria ver que cantidad sumarle a cada variable para cara circulo y en un evento draw hacer que si se pierde una vida o como sea, se dibuje un circulo de igual tama?o en esas variables "view_xview + x" y view_yview + y".

Me explico?
Título: Re: Barras de vida circular
Publicado por: CrashKen en Octubre 04, 2011, 01:10:17 AM
no entendi bien
?solo quieres hacer que cuando pierdas alguna vida, 1 circulo se apague?
o tambien que la cantidad de salud que le queda al personaje se represente en ese circulo, tipo mu online.
si es lo primero es facil, dibuja un sprite de 1 luz apagada, en el evento que dibuja ese circulo, agrega para que dibuje el sprite, pero con un if

para el circulo que representa la primera vida seria algo como

if vidas>0 {
draw_sprite(x,y,circuloapagado)
}

para la segunda vida

if vidas>1 {
draw_sprite(x,y,circuloapagado)
}

y asi... obviamente cambia las posicions xy por las que correspondan
Título: Re: Barras de vida circular
Publicado por: shaggymon en Octubre 04, 2011, 01:29:35 AM
MaanuRP  la verdad es que entendi mas o menos... tratare de hacerlo y te dire que ocurre..

CrashKen "o tambien que la cantidad de salud que le queda al personaje se represente en ese circulo, tipo mu online." exacto?? eso es..

emm, el sistema como lo plantee es asi, tienes 3 vidas en general, pero cada vida tiene 7 subvidas por llamarlo de alguna manera, que estan representadas por los circulos de la imagen que postee, al recibir un golpe pierdes un circulo rojo y se vuelve negro..  me baje un ejemplo que hace exactamente eso, pero no lo puedo hacer funcionar..

[gml]global.h = 63 [/gml]
[gml]//The code below checks what value the health is and what image to draw if
//global.h = a cetain value.
if global.h = 9
{
draw_sprite_part(Abarradevida,1,0,0,0,height,150,150)
}
if global.h = 18
{
image_index = 1;
image_speed = 0;
}
if global.h = 27
{
image_index = 2;
image_speed = 0;
}
if global.h = 36
{
image_index = 3;
image_speed = 0;
}
if global.h = 45
{
image_index = 4;
image_speed = 0;
}
if global.h = 54
{
image_index = 5;
image_speed = 0;
}
if global.h = 60
{
image_index = 6;
image_speed = 0;
}
if global.h = 66
{
image_index = 7;
image_speed = 0;
}
if global.h = 63
{
image_index = 8;
image_speed = 0;
}
//The code below checks if the value is zero and what to do if it is.
if global.h = 0
{
show_message('You ran out of health the game will now restart')
game_restart()

} [/gml]
Título: Re: Barras de vida circular
Publicado por: MaanuRP en Octubre 04, 2011, 02:19:27 AM
Mira, yo te hice un engine para poner una vida en negro.

Es mucho trabajo con sprite y numeros que hay que fijarse. Sinceramente no tengo ganas de hacerlo, pero con el engine se entiende lo que hace.

Cualquier duda me dices, aunque no estoy seguro si te servira.
Título: Re: Barras de vida circular
Publicado por: shaggymon en Octubre 04, 2011, 02:46:01 AM
funciono???? le hice algunos cambios al archivo que me enviaste pero ahora logre hacer lo que queria, lo unico es que la barra de vida no sigue al personaje pero ya encontraremos una solucion para eso... muchas gracias nuevamente??
Título: Re: Barras de vida circular
Publicado por: MaanuRP en Octubre 04, 2011, 02:49:58 AM
No sigue al personaje porque el objeto de la barra de vida esta estatico con respecto a la view, que esta ultima se mueve con el personaje, por lo que se queda quieto.

Lo que debes hacer es poner en el evento step del objeto de la barra de vida:
[gml]
x = view_xview
y = view_yview
[/gml]

Si no me equivoco, con esto funcionaria, esto hara que el objeto se posicione en la esquina superior izquierda de la view.
Título: Re: Barras de vida circular
Publicado por: shaggymon en Octubre 04, 2011, 03:43:48 AM
gracias , eso use, quedo de esta manera , va en el evento draw del objeto de la barra de vida.. 

[gml] draw_sprite(spr_Barradevida,0,view_xview[0],view_yview[0]); [/gml]
Título: Re: Barras de vida circular
Publicado por: MaanuRP en Octubre 04, 2011, 03:55:29 AM
Claro, tienes razon. Olvide por completo lo del evento draw.

Pero ahora que lo pienso, me parece que es lo mismo, ya que en el evento draw original toma los valores x e y del objeto. Por ende, si los valores x e y del objeto son view_xview y view_yview, los valores de la funcion draw_sprite seran esos.




Tema solucionado o todavia te falta arreglar algo?
Título: Re: Barras de vida circular
Publicado por: shaggymon en Octubre 04, 2011, 07:24:55 PM
 :'( , no, tengo un problema cuando colisiona con el enemigo, use esto en el evento de colision [gml] set variables lives to -1[/gml] pero al hacerlo pierde todos los puntos de vida pero al personaje no le ocurre nada x.x ... no desaparece ni el enemigo y mi personaje no recibe da?o ... no se como explicarlo mejor xD , dejo el ejecutable por si le puedes pegar una miradita..
Título: Re: Barras de vida circular
Publicado por: CrashKen en Octubre 04, 2011, 07:44:23 PM
Cita de: shaggymon en Octubre 04, 2011, 07:24:55 PM
:'( , no, tengo un problema cuando colisiona con el enemigo, use esto en el evento de colision [gml] set variables lives to -1[/gml] pero al hacerlo pierde todos los puntos de vida pero al personaje no le ocurre nada x.x ... no desaparece ni el enemigo y mi personaje no recibe da?o ... no se como explicarlo mejor xD , dejo el ejecutable por si le puedes pegar una miradita..

no es mas facil [gml]lives-=1[/gml] ?
Título: Re: Barras de vida circular
Publicado por: shaggymon en Octubre 04, 2011, 07:49:08 PM
si xDD , es que no sabia como ponerla en gml y use drag and drop xDD , pero sigo teniendo el mismo problema, mi enemigo en vez de restarme un solo punto de vida me saca 5 o 6 o me mata al instante x.x ...
Título: Re: Barras de vida circular
Publicado por: MaanuRP en Octubre 04, 2011, 08:54:39 PM
Me tira error al abrir el archivo editable.

Seguro que es porque no destruyes el objeto del enemigo o esta en no solido, por lo que se superponen y se bajan todas las vidas en un instante


Probe el editable, a mi no me pasa esto que dices tu, me sucede lo que dice en el objeto, cuando colisiana con un enemigo se destruye y se le descuenta una vida.
Título: Re: Barras de vida circular
Publicado por: shaggymon en Octubre 07, 2011, 12:17:48 AM
de verdad? sip pero si te fijas en la "barra" de la izquierda si no le pegas al enemigo , te quita todas las vidas muy rapidamente y no se como cambiar eso..
Título: Re: Barras de vida circular
Publicado por: MaanuRP en Octubre 07, 2011, 03:18:23 AM
No no, es mas, si no le cambio nada a tu ejemplo. Si toco al enemigo desaparezco y pierdo una sola vida.
Título: (SOLUCIONADO) Barras de vida circular
Publicado por: shaggymon en Octubre 07, 2011, 05:43:40 AM
 :o , jajajaja,  tienes raz?n??? , uno que anda medio volao, cosas que ocurren  XD,  y si yo quisiera que al golpearme me quite esa vida pero el personaje muera al perder los 7 circulos rojos? ..
Título: Re: Barras de vida circular
Publicado por: MaanuRP en Octubre 07, 2011, 06:21:16 AM
Ahora me imagino que en los eventos en los que el personaje pueda perder una vida (Colisiones y demas) tienes un "instance_destroy()", cierto?
Cambia esto por un:
x = xstart
y = ystart
Luego agrega un nuevo evento: Other --> No more lives
Y ahi dentro si pon la funcion de instance_destroy()
Título: Re: Barras de vida circular
Publicado por: shaggymon en Octubre 07, 2011, 07:13:10 AM
va mejorando , hice los pasos que me dijiste , pero me surgio otro problema , ahora al colisionar contra el enemigo pierde un corazon , pero mi personaje en vez de quedarse en el mismo lugar vuelve al comienzo de la room.. x.x ..

Tendra que ver algo el hecho de que haya puesto las vidas como variable global?
global.lives = 7
Título: Re: Barras de vida circular
Publicado por: MaanuRP en Octubre 07, 2011, 01:47:43 PM
No no, es que eso esta programado cuando te dije que pongas:

[gml]
x = xstart
y = ystart
[/gml]

Esto lo debes cambiar por lo que quieres que pase con el personaje cuando colisiona con el enemigo.

Por ejemplo, si quieres que se quede en el mismo lugar, vas a tener que destruir el enemigo, sino te va a pasar lo que dijiste antes, te van a bajar todas las vidas de una vez, porque apenas pierdes una, al seguir en el mismo lugar, pierdes todas.

En el evento de colision del jugador con el enemigo pon lo siguiente:

[gml]
//Si quieres que el jugador se mueva un poco para atras por las dudas pon:
x = x - 32
//Y lo que debes poner si o si(Que el enemigo se destruya) es:
with other
{
instance_destroy()
}
[/gml]
Título: Re: Barras de vida circular
Publicado por: shaggymon en Octubre 07, 2011, 08:07:16 PM
ahora si?? , ahora me queda hacer la muerte y estariamos listos.. muchas gracias...
Título: Re: Barras de vida circular
Publicado por: MaanuRP en Octubre 07, 2011, 08:12:08 PM
Cita de: shaggymon en Octubre 07, 2011, 08:07:16 PM
ahora si?? , ahora me queda hacer la muerte y estariamos listos.. muchas gracias...

Por nada, cualquier cosa abre otro Post :)