[CODE] Caracteres japoneses en bennugd

Started by master, March 23, 2014, 04:36:05 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

master

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.

FreeYourMind


Ruter106

Muy buen trabajo!!

Gracias por el código.

Enviado desde mi GT-I9001 usando Tapatalk 2