Conheça a iniciativa da Biblioteca dos Desenvolvedores  
Índice da Biblioteca  
Área dos Usuários  
Fórum de Discussão  
Forúm
 
  Como usar fontes personalizadas no Allegro

Em qualquer jogo que desenvolvemos sempre há a necessidade de usar fontes personalizadas para fazer um diferencial e caracterizar nosso jogo.
Esse tutorial vai mostrar como fazer isso usando dois programas.

  • Grabber
  • TTF -> PCX Converter (ttf2pcx) - Download

Se você tem a última versão do DevCpp e acompanhou o tutorial para compactação de imagens você já está familiarizado com o Grabber.
Baixe e descompacte o programa ttf2pcx e em seguida execute-o. A tela abaixo deverá aparecer.


A tela acima é parecida como qualquer outra tela de formatação de texto.

1 – Mostra todas as fontes True Type instaladas no seu Windows. Essa lista varia para cada computador.

2 – Estilo de fonte.

3 – Tamanho da fonte.

4 – Mostra como a fonte deverá ser desenhada na tela.
Para facilitar o entendimento da diferença entre as duas opções exporte a mesma fonte com opções diferentes.

5 – Valores de referência inicial e final dos caracteres da tabela ASCII.
Min char – É o índice inicial de onde o programa deverá começar a ler os caracteres.
Max char – É o índice final de onde o programa deverá terminar de ler os caracteres. Por padrão o programa vem com o valor 0x7F.

No entanto, para que possamos disponibilizar caracteres especiais e com acentos precisamos da tabela completa.
Portanto, você deve modificar o valor para 0xFF conforme a imagem acima.

Obs: Nesse caso, apenas disponibilizamos os caracteres especiais e com acentos.

Para a utilização deles no jogo é necessário usar a função set_uformat. Leia o artigo sobre funções de texto no allegro para mais detalhes.
http://www.bdjogos.com/biblioteca_conteudo.php?id=6.


1) Abra o Grabber. Clique com o botão direito no <root> e escolha a opção font.


2) Após colocar as fontes você precisa carregar o PCX de cada uma.

Para fazer isso clique com o botão direito em cima do nome de cada fonte que você colocou e escolha a opção Grab.
Se preferir use o atalho Ctrl+G.


3) Após selecionar o PCX com antialiased você vai ver um resultado conforme a tela abaixo.

4) Após carregar o PCX de todas as fontes clique no menu file->save e salve o arquivo com o nome “fontes.dat” dentro da pasta do seu projeto.

Se você conseguiu seguir os passos acima sem problemas você deve possuir um arquivo de dados chamado fontes.dat na pasta do seu jogo. Agora iremos mostrar o código abaixo para abrir esse arquivo e utilizar as fontes.



CÓDIGO...

#include <allegro.h>

int main()
{
   allegro_init();
   set_color_depth(32);
   install_keyboard();
   set_gfx_mode(GFX_AUTODETECT_WINDOWED, 640, 480, 0, 0);

   DATAFILE *datFontes = NULL;
   datFontes = load_datafile("fontes.dat");

   while (!key[KEY_ESC])
   {
      textprintf_ex(screen,font,0,0,makecol(255,255,0),-1,"PADRAO DO ALLEGRO:");
      textprintf_ex(screen,font,0,10,makecol(255,255,0),-1,"ABCDEFGH abcdefgh 0123456789");
      textprintf_ex(screen,font,0,50,makecol(255,255,0),-1,"FONTES COM ANTIALIASED:");
      textprintf_ex(screen,(FONT *)datFontes[0].dat,0,70,makecol(255,255,0),-1,"VERDANA - ABCDEFGH abcdefgh 0123456789");
      textprintf_ex(screen,(FONT *)datFontes[1].dat,0,90,makecol(255,255,0),-1,"COMIC SANS MS - ABCDEFGH abcdefgh 0123456789");
      textprintf_ex(screen,font,0,150,makecol(255,255,0),-1,"FONTES COM MONOCHROME:");
      textprintf_ex(screen,(FONT *)datFontes[2].dat,0,170,makecol(255,255,0),-1,"VERDANA - ABCDEFGH abcdefgh 0123456789");
      textprintf_ex(screen,(FONT *)datFontes[3].dat,0,190,makecol(255,255,0),-1,"COMIC SANS MS - ABCDEFGH abcdefgh 0123456789");
      vsync();
   }
   unload_datafile(datFontes);
   allegro_exit();
   return 0;
}
END_OF_MAIN();


FIM DE CÓDIGO

Abaixo segue a explicação dos principais comandos para carregar e utilizar as fontes do arquivo de dados.

Os demais comandos foram vistos em artigos anteriores.

DATAFILE *datFontes = NULL;

 

Cria um ponteiro do tipo Datafile e inicia com valor nulo.

 

datFontes = load_datafile("fontes.dat");

 

Aponta o ponteiro para o arquivo de dados “fontes.dat” que criamos com o programa grabber.

 

(FONT *)datFontes[0].dat

 

Esse comando é responsável pela utilização das fontes. Inicialmente é necessário fazer uma conversão explicita com o comando (FONT *) em seguida é necessário informar o nome do ponteiro e a posição da fonte que você quer carregar.

A ordem é a mesma da lista do grabber.

 


Executando o código acima você verá o resultado abaixo e poderá ver nitidamente a diferença entre as fontes com e sem a opção antialiased.
Cabe a você escolher a que combina mais com o seu jogo.


Resultado final



Caro leitor chegamos ao fim do entendimento da utilização de fontes personalizadas com o Allegro e o Grabber.
Se houver alguma dúvida ou dificuldade favor entrar em contato com os membros da BDJogos pelo Forum.

 

Última atualização: 22/02/2008



Abraço
BDJogos



Contribuidor
Bruno A. Rovela
25/09/2007

Voltar

 
 

01/06/2007 (C) Copyright. Todos os Direitos Reservados. Leia a política de privacidade do portal.
É proibida a cópia de conteúdo deste site de acordo com a Lei Brasileira de Direitos Autorais.