Utilizando fontes e saída de texto

Neste tutorial vamos tratar sobre como mostrar na tela mensagens de texto. Para isso, iremos também aprender a carregar arquivos de fonte. Neste exemplo iremos mostrar na tela três mensagens de texto, conforme a imagem abaixo.


			
			

Nas linhas 4 e 5 fazemos um include nas bibliotecas dos addons allegro_font e allegro_ttf, que possuem as funções que permitem trabalhar com as fontes.

13-17

Na linha 13 criamos a função error_msg para facilitar a tarefa de mostrar mensagens de erro. Como pode-se notar mais a frente no código, neste tutorial estamos verificando se cada chamada de função apresentou erro (retornou NULL) ou não:

Na inicialização do allegro

26-30

Addon de fontes ttf

35-39

Criação do display

41-46

Carregamento da fonte

48-54
Em caso de erro, mostramos uma mensagem com o al_show_native_message_box e encerramos o programa com return -1.

ALLEGRO_FONT

Na linha 24 declaramos nossa variável que irá receber a fonte que será usada ao mostrar textos na tela.

al_init_font_addon() e al_init_ttf_addon()

Na linha 33 iniciamos o addon de fontes do allegro, e na linha 36 o addon de fontes ttf (True Type Font). Este segundo serve para o uso de fontes arquivos de fontes .ttf.

al_load_font()

Na linha 49 chamamos a função al_load_font(), que serve para carregar uma fonte de um arquivo para ser usada como fonte no programa. A função recebe uma strings, contendo o caminho do arquivo (ou nome, se estiver na mesma pasta), o tamanho da fonte, em pixels, e o terceiro parâmetro são flags de renderização da fonte,0 como padrão (consulte referência para mais detahes).

O programa então pinta a janela com a cor branca na linha 57.

al_draw_text()

Nas linhas 60, 63 e 66 chamamos a função al_draw_text(), que serve para escrever um texto na tela. A função recebe como parâmetro a fonte (ALLEGRO_FONT), a cor do texto (por isso usamos a função al_map_rgb() para montar a cor), as coordenadas X e Y onde o texto aparecerá, a flag de alinhamento horizontal do texto, e a string contendo o texto. Os possíveis valores para a flag de alinhamento horizontal são os seguintes:

  • ALLEGRO_ALIGN_LEFT - Posição X informada corresponde ao canto esquerdo do texto.
  • ALLEGRO_ALIGN_CENTRE - Centro do texto localizado na posição X informada.
  • ALLEGRO_ALIGN_RIGHT - Posição X informada corresponde ao canto direito do texto.

al_draw_textf()

Na linha 71 usamos a função al_draw_textf(), que funciona de maneira semelhante à al_draw_text(). A diferença é que ela recebe um texto formatado, como a conhecida função printf().

Após isso, atualizamos a tela (linha 74), paramos o programa por 10 segundos (linha 77) e desalocamos a fonte (linha 80) e janela (linha 81). O resultado é um programa que irá mostrar as 4 mensagens de texto na tela por 10 segundos.

Download dos arquivos

Outros links