Hola, quería saber como hacer una barra de vida estilo Megaman, con sprites de barras representando la salud y que la barra sea vertical en lugar de horizontal. Vi algunos ejemplos en páginas usando la declaración "for" pero no me quedó del todo claro.


for(u=0 u<vida_total u++) draw_sprite(spritevida,0,5,5+u*sprite_height)
for(u=vida_total u<vida_maxima u++) draw_sprite(sprite_herida,0,5,5+u*sprite_height)


Esto te puede servir para hacer un sistema de vitalidad estilo Megaman.

Cita de: Marth en Agosto 18, 2015, 11:56:27 AM
for(u=0 u<vida_total u++) draw_sprite(spritevida,0,5,5+u*sprite_height)
for(u=vida_total u<vida_maxima u++) draw_sprite(sprite_herida,0,5,5+u*sprite_height)


Esto te puede servir para hacer un sistema de vitalidad estilo Megaman.

¿Qué serían las variables vida_total y vida_maxima y entre qué rangos de valores deberían moverse?


Cita de: Guacusio en Agosto 18, 2015, 01:33:52 PM
Cita de: Marth en Agosto 18, 2015, 11:56:27 AM
for(u=0 u<vida_total u++) draw_sprite(spritevida,0,5,5+u*sprite_height)
for(u=vida_total u<vida_maxima u++) draw_sprite(sprite_herida,0,5,5+u*sprite_height)


Esto te puede servir para hacer un sistema de vitalidad estilo Megaman.

¿Qué serían las variables vida_total y vida_maxima y entre qué rangos de valores deberían moverse?

La vitalidad total y máxima del personaje. ;)
El rango el que el jugador quiera.
En el megaman original los personajes tenían 28 puntos de vida, por lo que la barra tenia 28 fragmentos. A diferencia de con draw_healthbar, este medidor de vitalidad no es porcentual.

Cita de: Marth en Agosto 18, 2015, 11:56:27 AM
for(u=0 u<vida_total u++) draw_sprite(spritevida,0,5,5+u*sprite_height)
for(u=vida_total u<vida_maxima u++) draw_sprite(sprite_herida,0,5,5+u*sprite_height)


Esto te puede servir para hacer un sistema de vitalidad estilo Megaman.

Gracias por responder :D

Y ese código va todo en el evento Draw del personaje no?

Cita de: Kain88 en Agosto 18, 2015, 11:55:53 PM
Cita de: Marth en Agosto 18, 2015, 11:56:27 AM
for(u=0 u<vida_total u++) draw_sprite(spritevida,0,5,5+u*sprite_height)
for(u=vida_total u<vida_maxima u++) draw_sprite(sprite_herida,0,5,5+u*sprite_height)


Esto te puede servir para hacer un sistema de vitalidad estilo Megaman.

Gracias por responder :D

Y ese código va todo en el evento Draw del personaje no?

Si, va todo en el evento Draw!
:D
Cordialmente Jodidox!

Ok, gracias! Una ultima consulta: cual sería el sprite_herida?

Cita de: Kain88 en Agosto 20, 2015, 12:00:14 AM
Ok, gracias! Una ultima consulta: cual sería el sprite_herida?

Un sprite que crearías para indicar la vitalidad perdida. Por ejemplo, en Rayman la vitalidad se indicaba con una esferas amarillas y cada  vez que recibías daño una de esas esferas se tornaba roja.

Aah, ok, igualmente mi intención es hacer una barra idéntica a la de los juegos de Megaman, pero sigo sin lograrlo  XD

Cierto, en Megaman solo se mostraba la parte entera, no se mostraba una parte de vitalidad perdida, entonces puedes excluir el fragmento for(u=vida_total u<vida_maxima u++) draw_sprite(sprite_herida,0,5,5+u*sprite_height)

Lo que si es que en megaman la barra se contenía en un "tubo". Yo en Ilíada Espacial uso una barra similar para las batallas contra jefes, y en mi caso tengo por un lado el sprite del icono de vitalidad y por otro el sprite del contenedor y dibujo el contenedor de tal forma que encaje con la vitalidad.
Así lo hago yo, obviamente tu lo tendrás que adaptar a tu gusto (pues mi barra es horizontal y porcentual y tu quieres una vertical y no tiene por que ser porcentual):

draw_sprite(contenedor,0,room_width-250,room_height-56)
for(u=0 u<ceil(vida*longitud/PS) u++)
draw_sprite_ext(vida,0,room_width-241+u,room_height-53,1,1,0,global.color[floor(5*u/150)],1)

Gracias! Voy a modificarlo para lograr lo que busco :D