void write_in_bitmap( BITMAP * bmp, int id_fuente, x, y, centrado, void * dato, int tipo )


Descripción:

Esta función nos permite escribir un texto en un BITMAP de ALLEGRO, utilizando también diferentes opciones para dicho dibujado; para ello requiere los siguientes parámetros:

bmp : (BITMAP *) de ALLEGRO el cual se va ha dibujar el texto

id_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 6 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.

x, y : Las coordenadas relativas a la imagen en las que se va a imprimir el texto, primero en el eje horizontal y después en el vertical.

centrado : código de centrado - Es un código que determina la posición del texto que se especifica en las coordenadas anteriores. Sus valores son:

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

Por ejemplo, si se escribe un texto en las coordenadas 160, 0 y con el código de centrado 1 (Arriba), entonces se centrará el texto en la columna 160 y se imprimirá de la línea 0 hacia abajo. O si se quiere un texto en la esquina superior izquierda, se debe imprimir en las coordenadas 0, 0 y con código de centrado 0 (Arriba izquierda).

dato : Puntero al dato que deseamos imprimir (int, float o char).

tipo : Tipo de dato que vamos a imprimir, sus valores son:

 w_int_pointer    // Puntero a un número entero
 w_char_pointer   // Puntero a un carácter o cadena
 w_float_pointer  // Puntero a un número real
 w_char_const     // Puntero a una cadena constante
 w_double_pointer // Puntero a un número real doble

char str[20];

MAIN_PROGRAM_CDIV
BEGIN_PROGRAM 

 // Definimos el modo gráfico
 set_gfx(GFX_AUTODETECT_WINDOWED);

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

 strcpy(str, "¡Hola Mundo!");

 // Bucle de espera
 LOOP{
  write_in_bitmap(screen, 0, 0, 0, 0, str, w_char_pointer );
  FRAME;
 }

END_PROGRAM

En el ejemplo anterior vemos como se escribe un texto directamente en pantalla, se puede apreciar un parpadeo en el mismo ya que dicho texto es borrado cada vez que se actualiza la pantalla.


Ver: write() - move_text() - delete_text() - load_fnt() - text_z