Hola a todos, vengo con una pequeña duda, pero que no se como solucionarla:
Lo que quiero es escribir en una imagen texto letra por letra:
lo estoy haciendo así:
int letra;
int texto;
char dialogo[20];
int linea_texto;
...
letra=write_in_map(font1,dialogo,0);
map_put(0,texto,letra,7*i,(linea_texto)*14);
pero el resultado es bueno solo cuando el gráfico de la letra a usar es del mismo alto, por ejemplo la A y el 1 son de 10x11 y salen bien, pero para las minúsculas que son de 10x8 no, aparecen "volando".
(No es problema de la fuente, ya que al escribir con write, funciona todo bien.)
(http://k31.kn3.net/C/F/C/F/D/9/A2B.bmp)
lo mismo ocurre si uso esto mas simplificado:
map_put(0,texto,get_glyph(font1,page_act.dialogo[linea_texto]),7*i,(linea_texto)*14);
Se me ocurría usar los offset's de los caracteres del fnt, pero no se como obtenerlos. Necesito el Offset Vertical
espero me puedan ayudar.
bah, no se si borrar este post, ya lo he solucionado, cuando se hace get_glyph, en el map donde se guarda el gráfico van incluidos los puntos de control:
el vertical offset y horizontal offset estan en el punto de control 1:
la función en particular es :
get_point ( <INT fileID> , <INT graphID> , <INT controlpointID> , <INT POINTER x>, <INT POINTER y>)
http://wiki.bennugd.org/index.php?title=Point_get (http://wiki.bennugd.org/index.php?title=Point_get)
A mi me ha servido para enterarme, gracias :)
Que bien que te sirvió:
Entonces agrego un poco mas de información:
Cuando se hace get_glyph, en el map donde se guarda el grafico se almacena la sig información:
punto de control 0=el centro de la imagen
punto de control 1=el "horizontal offset" y "vertical offset"
punto de control 2=el "xadvance" y "yadvance"
El "xadvance" es para indicar el espacio en pixeles para pintar el siguiente caracter, que normalmente es el ancho del caracter. Me surge una duda ¿que utilidad tiene el yadvance, si write no acepta saltos de linea?
Precisamente para lo que tú estás haciendo: escribir los textos de forma independiente al sistema de bennu.
De todas formas, yo tampoco sabía lo de los puntos de control, y te iba a recomendar leer el FNT como si fuera un fichero ^^U Gracias por la info.