Hola a todos.
He estado trabajando en un juego desde hace tiempo, una de las funciones que apenas agregué fue la capacidad de leer textos en japones y desplegarlos en pantalla correctamente. Les comparto el código que utilicé y los archivos con los caracteres (¡¡¡cerca de 7000!!!)
El empacado contiene los siguientes archivos:
..
source/
font.fnt
jap.ini
Jap1.fpg
Jap2.fpg
Jap3.fpg
Jap4.fpg
Jap5.fpg
Jap6.fpg
Jap7.fpg
Jap8.fpg
japones.prg
jkeys.lib
main.prg
textos.txt
Los archivos necesarios son todos los que dicen jap y el font, el texto en japones tiene que estar forzosamente en un archivo aparte (en este caso, está en "textos.txt") y con codificación shift-jis.
Para usarla, es suficiente con lo siguiente:
Global
int font1;
int texto;
int archivo;
// las siguientes variables son necesarias para que funcione todo
int codificacione=0;
struct fpg_aux[110]
string nombre;
int fpg;
byte codigo[10];
int indice[10];
int inicio[10];
end
end
include "japones.prg"
Process Main()
private
string temp;
end
Begin
font1=load_fnt("font.fnt"); //carga la fuente preparada para el japones
codificacion_extendida(); //carga el archivo con las características y formato de la fuente japonesa
texto=texto_img(28, 200, 10,10,0); //crea el map o área donde se dibujará el texto. texto_img(ALTO, ANCHO, X, Y, Alineación)
archivo=fopen("textos.txt",O_READ); //abre el archivo con los textos en japones
temp=fgets(archivo); //obtiene una linea
text2graph("Esta es una prueba", font1, texto.graph, 0); //imprimo en el área creada la frase entre comillas en la linea cero. text2graph(texto, fuente, destino, linea)
text2graph(temp, font1, texto.graph, 1); //imprimo el texto recogido con fgets
loop
frame;
end
end
Espero que a alguien le sea de utilidad, si hay algún problema (que no lo creo) me avisan.
Tal vez el código se pueda optimizar y reducir, pero hasta ahora esto me funciona incluso en la tostadora.
Muchas gracias japones agradece
Muy buen trabajo!!
Gracias por el código.
Enviado desde mi GT-I9001 usando Tapatalk 2