Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: TheSquirrel en Agosto 30, 2010, 11:42:36 PM

Título: Problema con Healt Bar..
Publicado por: TheSquirrel en Agosto 30, 2010, 11:42:36 PM
Hola quiero crear un Health bar y tengo 5 sprites que son los siguientes:
healthbar 100%
healthbar 75%
healthbar 50%
healthbar 25%
Healthbar 0%
Quiero que cada vez que choque con un enemigo (el objeto enemigo se llama obj_enemy) pierda 25% de la vida, entonces cuando coche 4 veces con un enemigo se queda con 0% de vida y el juego termina.
El problema es que no se como poner que cuando este en 75% este en el sprite healtbar 75% , que cuando este en 50% este en el sprite de 50% asi con todos los sprites.
?como le hago?
Muchas gracias
Título: Re: Problema con Healt Bar..
Publicado por: cristalbeast en Agosto 31, 2010, 12:00:59 AM
En un objeto control que sea persistente pones

evento create:
global.vida=100

evento step:
if(global.vida<=0)
 {
 game_end();//aqui pon el game over o lo que pase cuando pierda el jugador
 }


evento colision del obj del jugador con el obj_enemy
global.vida-=25

evento draw:
draw_sprite(spr_healtbar,global.vida/25,x,y)// en x y y pones las coordenadas a tu gusto

Esto solo funciona si tienes el sprite de la barra con el nombre de spr_healtbar y tienes las subim?genes asi:

subimagen 0= el sprite de la barra al 0%
subimagen 1= el sprite de la barra al 25%
                  ...
subimagen 4= el sprite de la barra al 100%

PD :tenia un error ya lo correg?
Título: Re: Problema con Healt Bar..
Publicado por: TheSquirrel en Agosto 31, 2010, 12:12:29 AM
tengo dos preguntas
-es que pusiste que la subimagen 4 es igual a 100% , pero, son 5 subimagenes
-el evento draw va en el enemigo?
Título: Re: Problema con Healt Bar..
Publicado por: zerozerito en Agosto 31, 2010, 12:14:07 AM
haz que en cada colision cheque la vida

test health

si health = 75 fijar el sprite indicado (el de 75)

y asi en cada colision

recuerda hacer que el codigo de resta de vida quede antes de checar la vida

ejemplo mi jugador colisiona con un enemigo

mi vida baja -25

y

mi jugador checa si la vida equivale a 100,75,50,25 o 0, entonces abro blocks para hacer que si en cada caso la vida es 100,75,50,25 fije el sprite correspondiente pero si la vida es 0 el juego termina
Título: Re: Problema con Healt Bar..
Publicado por: TheSquirrel en Agosto 31, 2010, 12:35:14 AM
no funciona, trate pero ocurre lo siguiente:
-L barra aparece con movimiento de las subimagenes
-me aparece otro sprite en vez de la barra
-choque con un enemigo pero mi personaje muere al instante.
-podria decir que no funciona.

podrias ponerme un ejemplo?
no entiendo so de test health , ademas veo que tengo problemas D:
Título: Re: Problema con Healt Bar..
Publicado por: zerozerito en Agosto 31, 2010, 12:43:09 AM
tienes problemas esto es por que no has configurado una invulnerablilidad puedes checar este video para sacarte de problemas este se basa en la invulnerabilidad

http://www.youtube.com/watch?v=R2eWEKC2D14
Título: Re: Problema con Healt Bar..
Publicado por: TheSquirrel en Agosto 31, 2010, 12:46:10 AM
una duda , que codgio uso para restar -25?
Título: Re: Problema con Healt Bar..
Publicado por: zerozerito en Agosto 31, 2010, 01:01:59 AM
depende de que variable usas ejemplo

si usas la opcion de vida de gamemaker

puedes poner

health-=25

esto para restar el relativo de el valor anterior
Título: Re: Problema con Healt Bar..
Publicado por: TheSquirrel en Agosto 31, 2010, 01:30:48 AM
pero tengo un problema , es que cuando hago que se reste -25 , me resta -25 siempre hasta llegar a 0 no para en ningun momento, entonces choco con enemigo y pierdo.
Título: Re: Problema con Healt Bar..
Publicado por: zerozerito en Agosto 31, 2010, 01:36:22 AM
mmm como dices que esto pasa osea en que evento los has ubicado recuerda es

health-=25

la poscicion es muy importante - debe estar antes de =

y se ubica en el evento de colision

si tienes problemas por que al colisionar te mata directamente es por que no has seguido lo de la invulnerabilidad sigue el video pues es muy explicado y util  :-[

Título: Re: Problema con Healt Bar..
Publicado por: TheSquirrel en Agosto 31, 2010, 01:41:25 AM
Es que el tema de invurelabilidad ya lo tengo echo.
Ahora solo estoy probando la barra de vida.
lo puse asi; que en el evento keyboard - down , se reste -25 a la barra de vida (reemplazando la colision con el enemigo).
pero cuadno apreto abajo , se va rapidamente a 0, osea, apreto UNA vez abajo y pasa de 100% a 75%, 50%, 25%, 0% rapidamente. pero quiero que aprete UNA vez abajo y de 100% pase a 75%, luego apreto otra vez abajo y pase de 75% a 50%, asi hasta llegar al 0.
como lo hago?
Título: Re: Problema con Healt Bar..
Publicado por: zerozerito en Agosto 31, 2010, 01:44:22 AM
usa el evento key press

por que si usas el keyboard los eventos se repiten hasta que hayas soltado la tecla abajo

mientras que key press

ejecuta la accion solo una vez hasta que vuelvas a tocar abajo
Título: Re: Problema con Healt Bar..
Publicado por: TheSquirrel en Agosto 31, 2010, 01:47:34 AM
Muchas gracias !!  :) creo que tengo medio problema solucionado !!
thanks very much my friend!
Título: Re: Problema con Healt Bar..
Publicado por: zerozerito en Agosto 31, 2010, 01:51:30 AM
ok de nada si necesitas respuesta a una duda puedes preguntar jeje chao y suerte con tus juegos  :-[
Título: Re: Problema con Healt Bar..
Publicado por: TheSquirrel en Agosto 31, 2010, 11:47:21 PM
Ahora tengo otro problema , el problema es que cree un objeto llamado obj_healtbar que es la barra de vida.
Ahora necesito poner que obj_healthbar este en los ejes X e Y pero no se como hacerlo.
Como hago para poner un objeto x e y y que siga a mi personae desde esa posicion.

necesito lo siguiente que no se como hacer.
Quiero que sea un Sprite con 5 subimagenes.
que cada vez que disminuya 25% de la barra de energia comienze otra subimagen (seria la subimagen 2, en caso de que sea subimagen 100,75,50,25,0)
y que este en la posicion x=0 e Y=0 y que siga al protagonista obj_mario
como le hago?
Título: Re: Problema con Healt Bar..
Publicado por: zerozerito en Septiembre 02, 2010, 04:25:22 AM
puedes usar

view_xview+0    y
view_yview+0

esto hara que los draws u objetos salten a la poscicion de la view haci siguiendo a tu jugador