Bennu Game Development

Foros en Español => General => Topic started by: panreyes on July 01, 2012, 05:39:16 PM

Title: Me acabo de dar cuenta de que no sé crear fuentes para Bennu
Post by: panreyes on July 01, 2012, 05:39:16 PM
Así que, vengo a pedir ayuda. Llevo peleándome con el asunto desde hace horas.


El problema es que no consigo una fuente con un ancho fijo, y cuando creo que lo consigo falla de igual forma.
¿No se podría añadir un par de parámetros a load_fnt para establecer manualmente el ancho de cada letra y del espacio (que esa es otra)?


¿Qué ventajas tiene el fichero FNT frente a un FPG? ¿Por qué no utilizamos directamente FPG para las fuentes?
Title: Re:Me acabo de dar cuenta de que no sé crear fuentes para Bennu
Post by: josebita on July 01, 2012, 05:41:58 PM
splinter añadió soporte para utilizar una imagen como fuente.

igual eso te sirve...
Title: Re:Me acabo de dar cuenta de que no sé crear fuentes para Bennu
Post by: Futu-block on July 01, 2012, 07:37:21 PM
yo tampoco, ni tampoco se como hacer que se pueda escribir en alguna parte, no se si me entendeis...
Title: Re:Me acabo de dar cuenta de que no sé crear fuentes para Bennu
Post by: SplinterGU on July 01, 2012, 07:51:43 PM
se pueden hacer fonts de ancho fijo y tambien puedes hacer un font a partir de un mapa, donde tienes el font en un mapa a un tamaño fijo... (ver diario de avance)

si no me equivoco, hay incluso ejemplos.
Title: Re:Me acabo de dar cuenta de que no sé crear fuentes para Bennu
Post by: panreyes on July 02, 2012, 01:18:22 PM
¿Dónde? ¿Cómo?
Title: Re:Me acabo de dar cuenta de que no sé crear fuentes para Bennu
Post by: FreeYourMind on July 02, 2012, 01:22:27 PM
en el foro, eso si, practica con el buscador xD
Title: Re:Me acabo de dar cuenta de que no sé crear fuentes para Bennu
Post by: SplinterGU on July 02, 2012, 02:45:15 PM
http://forum.bennugd.org/index.php?topic=816.msg35989#msg35989
Title: Re:Me acabo de dar cuenta de que no sé crear fuentes para Bennu
Post by: Futu-block on July 02, 2012, 03:56:52 PM
creo que se como se hace...
vamos que capto el concepto, jiji
Title: Re:Me acabo de dar cuenta de que no sé crear fuentes para Bennu
Post by: panreyes on July 03, 2012, 09:55:25 AM
Gracias por el enlace, ese tema me ayudará mucho.


Aún así sigo en mis trece, me gustaría poder utilizar FPGs como FNTs :)
¿Podríamos hacer esto?
Title: Re:Me acabo de dar cuenta de que no sé crear fuentes para Bennu
Post by: FreeYourMind on July 03, 2012, 11:04:49 AM
si claro, te curras tu propria funcion que cargue imagenes como letras, yo lo hago en el PolloPollo por ejemplo
Title: Re:Me acabo de dar cuenta de que no sé crear fuentes para Bennu
Post by: panreyes on July 05, 2012, 01:58:27 PM

Lo que haré al final será generar la FNT a partir de pngs, como si de un fpg se tratara.


A ver si alguien me averigua por qué me peta el get_glyph... :\



import "mod_screen";
import "mod_video";
import "mod_map";
import "mod_dir";
import "mod_file";
import "mod_string";
import "mod_grproc";
import "mod_say";


Begin
set_mode(100,100,argv[1]);
from x=2 to argc;
say("Procesando fuente: "+argv[x]);
procesa(argv[x]);
end
End


Function procesa(string fntname);
Private
fuente;
Begin
say("carga fuente");
fuente=load_fnt("fnt/"+argv[fntname]+".fnt");
from x=1 to 999;
say("iteracion "+x);
graph=get_glyph(fuente,x);
if(graph>0)
say("glyph en graph");
save_png(0,graph,x+".png");
say("save png hecho");
end
End
End
Title: Re:Me acabo de dar cuenta de que no sé crear fuentes para Bennu
Post by: SplinterGU on July 05, 2012, 03:45:59 PM
argc - 1

glyph, van de 0 a 255.
Title: Re:Me acabo de dar cuenta de que no sé crear fuentes para Bennu
Post by: panreyes on July 05, 2012, 03:51:11 PM
Si lo ejecutas con una fuente verás que falla en el primer glyph que se intenta (en el 1)
Title: Re:Me acabo de dar cuenta de que no sé crear fuentes para Bennu
Post by: SplinterGU on July 05, 2012, 11:10:04 PM
jejeje... te has dado cuenta que pasas por string el nombre del font y luego ese nombre lo usas de indice? con lo que falla la carga del font?

----
Function procesa(string fntname);
Private
   fuente;
Begin
   say("carga fuente");
   fuente=load_fnt("fnt/"+argv[fntname]+".fnt");
----
Title: Re:Me acabo de dar cuenta de que no sé crear fuentes para Bennu
Post by: SplinterGU on July 05, 2012, 11:14:25 PM
prueba esto


import "mod_map";
import "mod_string";
import "mod_say";

Function procesa(string fntname);
Private
    x;
    graph;
fuente;
Begin
fuente=load_fnt(fntname);
    if ( fuente != -1 )
    say("carga fuente ok");
    from x=1 to 255;
    graph=get_glyph(fuente,x);
    if(graph>0)
        say("save glyph "+x);
    save_png(0,graph,x+".png");
    end
        end
    else
    say("carga fuente fail");
end
end

private
x;
Begin
from x=1 to argc-1;
say("Procesando fuente: "+argv[x]);
procesa(argv[x]);
end
End
Title: Re:Me acabo de dar cuenta de que no sé crear fuentes para Bennu
Post by: panreyes on July 06, 2012, 12:31:18 PM
Puff... que idiota estoy xD


En fin, ahora estoy con esto:


import "mod_screen";
import "mod_video";
import "mod_map";
import "mod_dir";
import "mod_file";
import "mod_string";
import "mod_grproc";
import "mod_say";


Begin
set_mode(100,100,argv[1]);
from x=2 to argc-1;
procesa(argv[x]);
say(argv[x]);
end
End


Function procesa(string fntname);
Private
fuente;
Begin
cd(fntname);
fuente=fnt_new(CHARSET_ISO8859,argv[1]);
from x=0 to 999;
If(file_exists(itoa(x)+".png"))
glyph_set(fuente,x,0,load_png(itoa(x)+".png"));
end
End
save_fnt(fuente,"../../fnt/"+fntname+".fnt");
cd("..");
End



Esto lo que hace es convertirme una carpeta entera de pngs a una fuente, pero tengo un problema.
El ancho de cada carácter de la fuente es siempre el mismo, sin importar el ancho del gráfico.


Veo que creando una fuente de un mapa con todo funciona correctamente, pero no es lo que busco.
Title: Re:Me acabo de dar cuenta de que no sé crear fuentes para Bennu
Post by: SplinterGU on July 09, 2012, 07:21:33 AM
los fonts creados con la funcion estandard son fonts de ancho fijo, pero eso no importa en lo mas minimo... puedes definir el offset y el avance de cada glyph... para esto tenes que definir en el mapa que vas a agragar como glyph 2 puntos de control extra, el 1 y el 2, el 1 es el offset y el 2 es el avance al siguiente caracter...

te suguiero probar con diferentes valores para que veas como funciona cada uno de estos.
Title: Re:Me acabo de dar cuenta de que no sé crear fuentes para Bennu
Post by: panreyes on July 09, 2012, 10:58:49 AM
Gracias, intentaré hacer magia.


De todas formas ¿puedo recuperar también esa información de las fuentes ya creadas?
Title: Re:Me acabo de dar cuenta de que no sé crear fuentes para Bennu
Post by: FreeYourMind on July 09, 2012, 11:43:26 AM
yo lo que hago en mi codigo es ajustar el ancho de algunas letras, como caracteres especiales, etc. es un coñaço, pero despues de estar hecho ya se escibe todo bien con esa fuente, eso si, si se cambia hay que reajustar de nuevo algunos caracteres xD
Title: Re:Me acabo de dar cuenta de que no sé crear fuentes para Bennu
Post by: SplinterGU on July 09, 2012, 04:30:47 PM
Quote from: PiXeL on July 09, 2012, 10:58:49 AM
Gracias, intentaré hacer magia.


De todas formas ¿puedo recuperar también esa información de las fuentes ya creadas?

si, con get_glyph viene ese informacion tambien.
Title: Re:Me acabo de dar cuenta de que no sé crear fuentes para Bennu
Post by: emov2k4 on July 15, 2012, 02:18:00 AM
Alguien Soluciono esto ??? , vi unos ejemplos de un link que colocaron, pero no adjuntaron el png
" g = png_load("font.png"); "

entonces no puedo probar el ejemplo, alguien lo tiene ?

--------------------------------

ya lo solucione,  encontre uno en internet, ahora como puedo generar mi propio font ?

--------------------------------

Bueno, ante pronta respuesta  :P :P encontre en internet este programa y me funciona super bien
http://www.codehead.co.uk/cbfg/ (http://www.codehead.co.uk/cbfg/)

Title: Re:Me acabo de dar cuenta de que no sé crear fuentes para Bennu
Post by: SplinterGU on July 15, 2012, 08:15:05 PM
Quote from: emov2k4 on July 15, 2012, 02:18:00 AM
Alguien Soluciono esto ??? , vi unos ejemplos de un link que colocaron, pero no adjuntaron el png
" g = png_load("font.png"); "

entonces no puedo probar el ejemplo, alguien lo tiene ?

--------------------------------

ya lo solucione,  encontre uno en internet, ahora como puedo generar mi propio font ?

--------------------------------

Bueno, ante pronta respuesta  :P :P encontre en internet este programa y me funciona super bien
http://www.codehead.co.uk/cbfg/ (http://www.codehead.co.uk/cbfg/)



gracias y karma por la tool...

bennupack te estan llamando!