Utilizando arquivos de configuração no Allegro

May 26th, 2008

Olá,

Hoje vamos ver um tema bem simples: como utilizar arquivos de configuração no Allegro.
Os arquivos de configuração do Allegro podem ser utilizados para diversos fins (com suas devidas vantagens e desvantagens).

Vantagens

  1. mecanismo simples, fácil de utilizar
  2. sintaxe dos arquivos iguais à arquivos .INI (ou seja, muito simples)
  3. deixa alguns valores configuráveis, não necessitando de recompilação para testar novos valores

Desvantagens

  1. não é flexível, serve apenas para guardar valores (nada de tipos compostos como arrays, etc)
  2. os arquivos não são compactados e criptografados, qualquer um pode alterá-los

Definição

Os arquivos de configuração no Allegro nada mais são do que arquivos texto comuns formatados com uma estrutura parecido com arquivos .INI onde temos a seguinte estrutura:

// comeco do arquivo
[nomesecao]
rotulo=valor # comentario
// fim do arquivo

Aqui vemos os seguintes elementos:

nomesecao = nome da seção que contém as configurações (serve como uma maneira de organizar as configurações por partes)
rotulo = nome do rótulo que conterá um valor (e será referenciado em código)
valor = valor para o rótulo

Exemplo de um arquivo:

// comeco do arquivo
[graficos]
largura=640
altura=480
profundidade=16
telacheia=0
// fim do arquivo

No arquivo acima temos uma seção chamada “graficos” onde definimos algumas variáveis específicas para a resolução de tela.

Algumas observações adicionais retiradas do manual:

- toda variável que não estiver definida em uma seção automaticamente estará disponível em todas as seções
- o mecanismo de seções serve para implementar uma espécie de escopo onde é possível definir rótulos iguais para seções diferentes

Exemplo:

[video]
largura=640
altura=480

[monstro]
largura=10
altura=50

Acima podemos ver que a largura e altura do monstro diferem da altura e largura da seção “video”.

Implementação

Para utilizar arquivos de configuração no Allegro, precisamos seguir os passos abaixo:

- especificar o arquivo que contém os valores
- pegar o valor da seção e rótulo que queremos
- utilizar o valor

Para especificar o arquivo de configuração, utilizaremos a função “set_config_file” onde passamos um ponteiro de chars para o arquivo que queremos:

Exemplo:

char *nomeArquivo = "config.cfg";
set_config_file(nomeArquivo);

Para pegar o valor de um determinado rótulo precisamos primeiro saber o tipo do valor que queremos. Atualmente o Allegro suporta os seguintes tipos:

- string: equivalente ao tipo “char *” no C. (const char *get_config_string(const char *section, const char *name, const char *def);)
- inteiro: equivalente ao tipo “int” no C. (int get_config_int(const char *section, const char *name, int def);)
- hexadecimal: equivalente ao tipo “int” no C. (int get_config_hex(const char *section, const char *name, int def);)
- float: equivalente ao tipo “float” no C. (float get_config_float(const char *section, const char *name, float def);)

Como vemos no protótipo das funções acima, elas compartilham alguns parâmetros em comum:

const char *section = nome da seção onde iremos especificar o rótulo
const char *name = rótulo que contém o valor
(int|float|const char *def) = valor padrão para o rótulo se nenhum valor for encontrado

Exemplo:

int largura = get_config_int("graficos", "largura", 320);

A linha de código acima procura no arquivo de configuração na seção “graficos” pelo “rótulo” “largura” e atribui o valor à variável inteira “largura”, se o valor não for encontrado, a variável inteira “largura” terá então o valor 320.

Um exemplo mais completo:

Faça o download deste exemplo aqui.

arquivos_configuracao.jpg

Conclusão

Como você percebeu, a utilização dos arquivos de configuração depende da criatividade. Arquivos de configuração podem ser utilizados para guardar a lógica de gameplay de um jogo podendo ser alterado sem necessidade de recompilação do executável.
Existe muito mais flexibilidade disponível, recomendo uma leitura no manual pois existem funções para escrever nos arquivos e diversas outras não apontadas neste tutorial.

Exercícios

Agora que você já sabe o básico sobre arquivos de configuração, tente os exercícios abaixo:

  1. faça um programa que imprima um cubo na tela nas coordenadas iniciais x e y especificadas através de um arquivo de configuração
  2. utilizando a função makecol, faça uma função que limpe a tela com as cores lidas através de um arquivo de configuração (dica: faça um rótulo para cada cor, vermelho, verde e azul)
  3. faça uma pequena entidade que se move na tela e altere alguns parâmetros dela através de arquivos de configuração: velocidade, cor, talvez até o tipo (triângulo, quadrado, etc), as possiblidades são grandes.

Não deixe de dar a sua sugestão para artigos futuros.

Até a próxima.

Share/Save/Bookmark

Posts Relacionados

Entrada preenchida em: Tutoriais sobre programação de jogos

Deixe um Comentário

Obrigatório

Obrigatório, hidden

HTML permitido:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Rastreie este post  |  Se inscreva para receber os comentários via RSS


Categorias

Posts Recentes

Tags

Veja Também

Comentários Recentes

Links