int write_in_map( int id_fuente, char * texto, int centrado )
int write_in_map( int id_fuente, char * texto, int centrado, entre_letra )


Retorna:

 El código del gráfico creado conteniendo al texto.

Descripción:

Crea un nuevo mapa en memoria (sin cargarlo de un archivo del disco, al igual que la función new_map()) y escribe en el mismo un texto cuyas características se describen con los siguientes parámetros:

fuente : El código de la fuente o tipo de letra que se va a utilizar. Aquí se debe poner un 0 cuando se quiera utilizar la fuente del sistema (fuente de color blanco, pequeña, de 8 por 8 puntos), o bien el código de fuente devuelto por la función load_fnt() cuando se carga una nueva fuente en el programa.

texto : En segundo lugar se especificará texto a escribir como un literal, es decir, un texto entre comillas (ver los símbolos delimitadores de literales).

centrado : Es un código que determina la posición del texto en la que situará el centro o punto de control del mapa creado. Sus posibles valores son:

  0-Arriba izquierda 1-Arriba 2-Arriba derecha
  3-Izquierda        4-Centro 5-Derecha
  6-Abajo izquierda  7-Abajo  8-Abajo derecha

entre_letra : La distancia de letra a letra.

El texto siempre estará encajado en un mapa nuevo de sus mismas dimensiones, pero este punto de control especificará que punto de dicho mapa se centrará en las coordenadas en las que posteriormente se sitúe el mismo.

Esta función se comporta prácticamente igual que load_map(), salvo que no se lee un archivo en disco con el gráfico, sino que se crea como un gráfico que contiene un mensaje escrito con una fuente de letras determinada.

Se devuelve como valor de retorno el código del gráfico, que es un valor numérico que debe especificarse para utilizar el gráfico, en la variable graph o, en general, en todas las funciones que requieran un código de gráfico entre sus parámetros.

Cuando se requiera dentro de una función el código de fichero al que pertenece dicho gráfico, se debe indicar el código 0.


int mi_fuente;

MAIN_PROGRAM_CDIV

BEGIN_PROGRAM 

    //Definimos el modo grafico
    set_gfx(GFX_AUTODETECT_WINDOWED);

    //Definimos la resolución
    set_mode(m320x200);

    mi_fuente=load_fnt("../help.fnt");

    // Se crea un mapa nuevo con el texto "MOUSE"
    // con el punto de control en el centro, y se
    // asigna como gráfico del puntero del ratón.

    mouse.graph = write_in_map(mi_fuente,"MOUSE",4);

    LOOP
     FRAME;

END_PROGRAM

En el ejemplo se carga una fuente de letras con la función load_fnt(), y entonces se crea un mapa con la función write_in_map() guardando el código del gráfico que retorna en la variable mouse.graph, de forma que aparezca como puntero del ratón.

El nuevo mapa se crea con el mensaje "MOUSE" escrito con la fuente help.fnt, y su punto de control principal se sitúa en el centro (con el código 4).

Pulsando la tecla ESC se saldrá del bucle de visualización del programa y se descargará el gráfico con la función unload_map() (exactamente igual que si se hubiera cargado de un archivo del disco).

No obstante, no es necesario descargar el gráfico de memoria antes de finalizar el programa, ya que el sistema lo hará de forma automática.

La principal ventaja que proporciona la función write_in_map() es el poder tratar los textos como si se tratara de gráficos, con lo que se podrán rotar, escalar, etc.

Nota: Para que write_in_map() pueda mostrar un valor numérico se debe utilizar la función itoa(), que permite convertir un valor numérico en una cadena de texto.


Ver: write() - unload_map/pcx() - graph