Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: master on December 14, 2012, 09:40:49 AM

Title: no me funciona correctamente "set_text_color"
Post by: master on December 14, 2012, 09:40:49 AM
bueno, antes de postear la duda, me puse ha hacer varias pruebas, y concluyo que:
O yo no se usar "set_text_color"
o algo anda mal

Ilustrare mi duda con este codigo modificado del manual de OSK

Import "mod_text";
Import "mod_video";
Import "mod_map";
Import "mod_key";
Import "mod_debug";

Process Main()
Private
    int color;
    int identificador;
end
begin
    set_mode(800,200,32);
    identificador=write(0,100,100,4,"Hola");
    loop
        write_var(0,100,50,4,color);
        write_var(0,0,0,0,identificador);
        if (key(_r))
            color=rgba(255,0,0,255);
            set_text_color(rgba(255,0,0,255));
        end
        if (key(_g))
            debug;
            set_text_color(1,rgba(0,255,0,255));
        end
        if (key(_b))
            set_text_color(1,rgba(0,0,255,255));
        end
        if (key(_a))
            set_text_color(1,rgba(64,243,28,0));
        end
        if (key(_y))
            set_text_color(1,rgba(255,255,0,0));
        end
        if (key(_p))
            set_text_color(1,rgba(255,0,255,0));
        end
        if (key(_o))
            set_text_color(1,rgba(0,255,255,0));
        end
        if (key(_esc))
            break;
        end
    frame;
    end
end


El codigo anterior deberia cambiar el color del texto "Hola" (con identificador 1) cada vez que se presiona una de las teclas (g,b,r,y,a,p,o)
pero no lo hace. Intentando encontrar el problema, coloqué la libreria mod_debug para ver que arojaba, y cuando veo linea por linea hasta "set_text_color" si me hace el cambio de color correctamente.

¿que estoy haciendo mal?

en el juego que estoy haciendo también no me hace el cambio de color, solo hasta llegar a debug, un fade o cuando tengo graficos en movimiento en la misma zona del texto(scroll y regiones) me cambia el color.
Title: Re:no me funciona correctamente "set_text_color"
Post by: SplinterGU on December 14, 2012, 12:48:28 PM
por que le pasas 1 como primer parametro? el primer parametro debe ser el id del texto, no 1.

debes usar indentificador, no 1.

y esos write_var deben ir fuera del loop.

por otro lado, ya veo porque no actualiza, es que no se marca el objeto como que cambio... lo tengo que arreglar.

por ahora, si pones restore_type=1 va a funcionar.
Title: Re:no me funciona correctamente "set_text_color"
Post by: master on December 14, 2012, 06:54:50 PM
ok, ya he corregido el codigo(lo de las write_var, un pequeño error del que no me fijé)
con poner restore_type=1; ya hace el cambio

begin
    set_mode(800,200,32);
    identificador=write(0,100,100,4,"Hola");
    write_var(0,0,0,0,identificador);
    loop
        if (key(_r))
            color=rgba(255,0,0,255);
            set_text_color(identificador,rgba(255,0,0,255));
        end
        if (key(_g))
            set_text_color(identificador,rgba(0,255,0,255));
        end
        if (key(_b))
            set_text_color(identificador,rgba(0,0,255,255));
        end
        if (key(_a))
            set_text_color(identificador,rgba(64,243,28,0));
        end
        if (key(_y))
            set_text_color(identificador,rgba(255,255,0,0));
        end
        if (key(_p))
            set_text_color(identificador,rgba(255,0,255,0));
        end
        if (key(_o))
            set_text_color(identificador,rgba(0,255,255,0));
        end
        if (key(_esc))
            break;
        end
        restore_type=1;
    frame;
    end
end

Title: Re:no me funciona correctamente "set_text_color"
Post by: SplinterGU on December 14, 2012, 06:58:59 PM
la proxima version ya tendra el fix y no sera necesario poner el restore_type que fuerza a redibujar todo...

si tu compilas bennugd desde los fuentes, puedes compilarlo que ya tiene el fix.