Octubre 22, 2018, 05:31:58 AM Ultima modificación: Octubre 23, 2018, 09:52:06 PM por knd144
Hola de nuevo.

Me he estado volviendo loco al usar la función draw_healthbar, principalmente por que es una función sencilla.  :-[

Tengo el siguiente código, todo en el evento "draw_gui":


    var largo_vista = view_wport[0] ;
    var alto_vista = view_hport[0];
   
    var inicio_gui_coordenada_y = alto_vista - global.altura_gui_estadisticas;
    var espacio_entre_texto = 20;
    var tabulacion = 5;
    var longitud_columna = 400;
    var espacio_antes_de_barra_recarga = 200;
    var altura_barra_recarga = 5;
    var multiplicador_longitud_barra_recarga = 5;


draw_healthbar(
        (tabulacion+(longitud_columna*2)+espacio_antes_de_barra_recarga), //Coordenada x1
        (inicio_gui_coordenada_y+espacio_entre_texto*1), //coordenada y1
        (tabulacion+(longitud_columna*2)+espacio_antes_de_barra_recarga)+(tiempo_ataque), //coordenada x2
        (inicio_gui_coordenada_y+espacio_entre_texto*1)+altura_barra_recarga,//coordenada y2
        (tiempo_recorrido), //variable que indica el valor de la "vida" (Aunque la use para otra cosa).
        c_white,c_blue,c_blue,0,true,true); //El fondo es blanco y se va llenando de azul



En este caso la variable "tiempo_ataque" tiene un valor de 30 y "tiempo_recorrido" va de 0 a 30 (se le suma 1 cada "step"); en fin que en lugar de llenarse por completo la barra, se queda como a una cuarta parte (Es más, me parece que la barra blanca es la que es más larga de lo que debería). La imagen es la siguiente (La barra es la que está en el centro):



Los otros números son, de hecho, debugs que he estado haciendo para saber el valor de x1, x2, x1 + tiempo_recorrido, tiempo recorrido y tiempo ataque; el código es el siguiente:


//debug de la barra de vida
    draw_text(tabulacion+longitud_columna*2, inicio_gui_coordenada_y+espacio_entre_texto*2, string(tabulacion+
       (longitud_columna*2)+espacio_antes_de_barra_recarga)); //Valor de x1

    draw_text(tabulacion+longitud_columna*2, inicio_gui_coordenada_y+espacio_entre_texto*3, string((tabulacion+
       (longitud_columna*2)+espacio_antes_de_barra_recarga)+(tiempo_ataque))); //valor de x2

    draw_text(tabulacion+longitud_columna*2, inicio_gui_coordenada_y+espacio_entre_texto*4, string((tabulacion+
       (longitud_columna*2)+espacio_antes_de_barra_recarga)+(tiempo_recorrido))); //valor de x1 + tiempo_recorrido
   
    draw_text(tabulacion+longitud_columna*3, inicio_gui_coordenada_y+espacio_entre_texto*1, string(tiempo_ataque));
    draw_text(tabulacion+longitud_columna*3, inicio_gui_coordenada_y+espacio_entre_texto*2, string(tiempo_recorrido));


Como ven en las últimas 2 línea, los valores de "tiempo_ataque" y "tiempo_recorrido" es el mismo; y las coordenadas de x2 y de x1 + tiempo recarga es la misma... sin embargo la barra no se muestra llena.

¿Alguien sabe qué está sucediendo antes de que termine de volverme loco?  :-[

Hola knd144

La función draw_healthbar tiene que tener un ancho fijo y el valor debe ir entre 0 a 100 (siendo 100 la barra completa).
Si le pones 30 se verá sólo un tercio de la barra.
valor = tu_valor * 100 / 30
Esa pequeña ecuación convierte tu valor de rango 0 a 30, a un rango de 0 a 100 para que puedas usarlo en la función

Saludos

Pfff, es verdad.  ???
Vaya detalle que se me escapaba.  :-[ Vale, con eso puedo arreglar el problema.

Muchas gracias, otra vez.  :-[