Pero la diferencia es que se usan Bitmaps de 16 y 32bits de calidad, pudiendo imprimir en pantalla textos de gran calidad, forma,colores,texturas y codificacion Total.
Este proyecto se implementara poco a poco en mís actuales y recientes proyectos: Lolita Land y SMT-Remake(Super Smash Kei)
-----------------------------------
HOLAAAA!!!
-----------Tema principal por actualizar, ya que habla de la primera version Aplha------
estoy feliz.
Creo que mis sueños se estan empezando a ser realidad, pero de momento a medias (45%)
Pero confio de que me salga bien este proyecto que tendrá futuro, y que muchos lo usareis.
De momento voy muy muy bien y aun le queda arreglarlo en un 55%, el resto ya son comandos de efectos y etc...
bueno.
Ahi va la captura: es muy grande.
Bueno como muestra en esta captura "parece" que se trata de un texto imprimido en pantalla.
pues quiero presentaros mi algoritmo/sistema nuevo de fuentes de typetrye de alta calidad 16/32bits
y interprete de imprimir el texto en pantalla, como un Write.
Ademas de simular los comandos normales de fuentes(fnt) y texto en pantalla(write)
Estoy creando funciones muy muy similares, ademas de tener algunas ventajas.... pero kizas alguna desventaja.
Solo teneis que ver los PRG, para averiguar como funcionan.
pero ya os digo ques muy muy similar, casi identico al 99%.
Voy a listar las cosas que son posible y que funcionan ya:
-load_font(string file) sin extension, solo el nombre del fichero ,para cargar la fuente nueva. devuelve 0=fuente 1,1=fuente2....(igual como el comando de load_fnt)
-writen(Nº de fon(0->),x,y,centrado,string texto); el comando funciona igual que el write normal., devuelve el id del write
-delete_write(id writen/all_writen)
-unload_fnt(Nº font)
-Manipular el Writen como si fuese un proceso(en realidad lo es), pudiendo copiar,mover,rotar...etc.etc....
(es como un Write_in_map) pero con caracteres de alta calidad!!
-Poder retocar el PRG de las fuentes, para ajustar algunos parametros a gusto!
-Si se llama a Let_me_alone(), los processos de tipo writen NO mueren. hay que usar delete_writen(all_writen);
-Estructura global de almacenamiento de fuentes y todos los datos relacionado, hasta caracteres que NO existen en la tabla de caracteres.(debug)
-Se puede retocar graficamente el map de la fuente, para crear efectos especiales, usando programas de edicion de imagen.
-Correcion del fallo(Los FNT/IFS no disponen de eso) con los caracteres cursiva, los que tienen la "cola" muy larga y igual cuando se escribe como si fuese una fuente typetrue.
-Limite de pixeles en horizontal de la tira de caracteres hasta MAX_WROD!!!(una burrada XD)
-Se puede averiguar con exsactitud el numero que corresponde esa letra, aun que sea un codigo ASCII superior a 255!!!
Y poder imprimir, textos Unicodes!
Cosas que me faltan por hacer y añadir:
(lo mas importante)
-[color=#FF0000]Arreglar el codigo ASCII a partir del Nº 96 hasta el 255. Los caracteres del 32 hasta el 95 funcionan bien [/color]
-Añadir ajuste de espacio, en el conversor de fuentes, para crear una area mas grande, para poder editar los caracteres en el photoshop, en especial para añadir sombras,resplandor,reborde,efecto de speed...etc.
(poco importante,viene despues de lo mas importante )
-Añadir comando especial, o variable para configurar la separacion entre caracteres.
-Posibilidad de añadir caracteres UNICODE. utilizando codigo ASCII superior al Nº 255. ya que no deja de ser imagenes.
-Funciones casi identicas al los WRITES de Div2/Gemix.(hasta lo posible)
-Probar distintos estilos de fuentes typetrue, forma, tamaño...
-y no se....
------------------------------------------
bueno el primer paso es conseguir el programa Fontrack
sin este programa no podemos crear estas fuentes.
http://hexforge.com/fontrast.shtml
Se puede descargar gratuitamente la version Demo, que dura 30 dias, y que la licencia vale 15$(6€)
aun que creo que existe alguna manera de engañar esos 30dias U_U, pero si vale la pena lo de las fuentes, creo que merece la pena pagar un dinerilo por el programilla
Una vez abierto el programa, os saldran las opciones por defecto.
tendreis que cambiarlo así:
Si no sabeis como funcionan los botones esta la ayuda:(ingles)
http://hexforge.com/fontrast/manual.htm
Pero trakilos, en un fichero de configuracion se puede cargar:
Esta en esta ruta: writeb\fontrast_to_map\fnb\MyFont.frs
Este archivo lo puedes abrir con el Editor Fontrack.
Tendras que cambiar la ruta del texto ASCII: writeb\fontrast_to_map\fnb\super ASCII-2.txt
y la ruta de salida: \writeb\fontrast_to_map\fnb\
El nombre puedes cambiarlo, pero de momento dejalo como "MyFont"
Elige el formato de la fuente/estilo: por ejemplo yo e usado el Arial.
y puse de tamaño 64 pixeles de altura.
el tamaño de la cuadricula la recomiendo a 512x512, podeis probar.
El Border se puede quitar, ya no es necesario, y el grosor del borde se puede dejar a 0. es opcional
el supersample, es un filtro antialising, de varios niveles, podeis experimentar. 8x8 es el mas lento y de mejor calidad.
El formato del bitmap recomiendo el PNG a 32bits, ya que agrega la transparencia.
Al crear la fuente bitmap, abra ficheros que se llaman MyFont000.png MyFont00X.png.... (depende del tamaño de la fuente y la cuadricula abran mas o menos graficos.)
Abrelos con el MAP Editor y conviertelos en .map
recuerda, debe estar en este directorio: \writeb\fontrast_to_map\fnb\MyFont000.png,MyFont.txt
ahora debeis ejecutar el programa gemix: \writeb\fontrast_to_map\Fontrast_to_MAP.exe
de momento solo carga la fuente llamado: "MyFont"
se puede cambiar en el PRG(pero hay que compilar con Gemix 5.7)
esto lo que hace es copiar los graficos MyFont000.png + el archivo de configuracion MyFont.txt
y los convierte en una tira de caracteres como los FNT, ademas guarda los datos necesario para imprimir los textos correctamente.
Cuando termine, sale el mensaje en el cruadro de dialogo: MyFont
En esta carpeta veras estos 2 archivos: \writeb\fontrast_to_map\MyFont.map y MyFont.cnf (solo estos 2)
Ahora puedes abrir el nuevo MyFont.map (el color negro es transparente)
y guardarlo en png
para editarlo con el photoshop si quieres.
Salva los cambios del png, y pasalo a map:
Despues coge estos 2 archivos:\writeb\fontrast_to_map\MyFont.map y MyFont.cnf (solo estos 2)
y copialos en este direcotrio. writeb\MyFont.map y MyFont.cnf
Cambia el nombre a los 2, como te guste, pero no cambies la extension.
new.map y new.cnf
Abre el map_fnt_write.prg
para ver el codigo, y revisar que:
Load_font tenga el nombre de tu fuente:(deja poner rutas: ej.font\mi_fuente)
Load_font("new");// sin extension.
Esto es ya es opcional, pero en la version alpha(la 1ª) lo recomiendo.
pero yo de todas formas ya lo e probado TODOS los caracteres ASCII
http://www.elcodigoascii.com.ar/
Y faltan 127 caracteres por arreglar bien U_U ya que el codigo de codigo ASCII es diferente al que genera el Fontrast
Eso lo tengo que arreglar yo...
Puedes probar de escribir estos caracteres, pero en esta version alpha, aun no esta corregido, y no se visualizan.
- writen(id_fnt,0,128,0,"`abcdefghijklmnopqrstuvwxyz{|}~");//faltan
- writen(id_fnt,0,128+64,0,"ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£");//faltan
- writen(id_fnt,0,256,0,"Ø׃áíóúñѪº¿®¬½¼¡«»ÁÂÀ©¢¥ãäð");//faltan
- writen(id_fnt,0,256+64,0,"ÐÊËÈiÍÎϦÌÓßÔÒõÕµþÞÚÛÙýÝ");//faltan
- writen(id_fnt,0,256+128,0,"¯´±¾¶§÷¸°¨·¹³²");//faltan
Esto es para probar de impirmir "!HOLA MUNDO!".
Es muy sencillo
FAQ:
1-Los textos(o numeros) son fijos, como puedo actualizarlos?se puede?
R-Si, esta probado, aun que debemos añadir una linea, para que actualize el texto.
El metodo normal WRITE:
- //lo normal
- string texto;
- write(0,0,0,0,texto);
- loop
- texto="FPS:"+itoa(fps);
- frame;
- end
El metodo WRITEN:
- string texto;
- id_w=writen(0,0,0,0,texto);
- loop
- id_w.text_writen="FPS:"+itoa(fps);
- frame;
- end
esa es la diferencia. de uso.(no puedo programarlo de otra forma)
Ya que WRITEN es un processo, y tiene un ID, y como processo tiene su variable LOCAL.
string text_writen
es la cadena que almaceza y gestiona TODOS los writen, cada writen tiene una.
3.Puedo mover,rotar,escalar,espejear,fxcolor, region,clonar y usaar su grafico?
SI. totalmente,
Necesitas el ID de un WRITEN, recuerda que WRITEN es un processo. y puedes manipularlo como tal.
graph,x,y,flag,size,size_x,size_y,shear_x,shear_y,angle,region.... Todos los locales.
Aun que algunas cosas las copia de las variables globales:
- Code: Select all
/* *** VARIABLES *** */
* text_alpha (= 255)
* text_angle (= 0)
* text_flags (= 0)
* text_fxmode (= 0)
* text_fxcolor (= 0)
* text_fxintensity (= 0)
* text_region (= 0)
* text_size_x (= 100)
* text_size_y (= 100)
* text_z (= -256)
* text_tfmorder (= 0)
* text_shear_x (= 0)
* text_shear_y (= 0)
* text_destination_file (= 0)
* text_destination_graph (= 0)
pero dentro del PRG de writen.prg, puedes retocar eso.
4.puedo cifrar las fuentes estas?
SI, con Save_map(0,fuent_t[x].id_map_fnt,"pass");