Primeiro programa em C com Allegro
Continuando a séria de posts sobre Allegro, vamos ver como iniciar um programa usando essa biblioteca. Que por sinal, é bem simples usando o Dev C++.
No Dev C++, vamos no menu File > New > Project
Abrirá a seguinte tela:

Entre na aba MultiMedia, escolha Allegro application (static) e escolha a linguagem C ou C++, para este post vamos usar o C. Você pode também definir o nome do projeto, aqui definimos como Tutorial Allegro. Após, podemos clicar em Ok.
O Dev C++ pedirá que você escolha um diretório para salvar o projeto, e também o nome do arquivo do projeto, podemos deixar Tutorial Allegro.dev mesmo.
Após salvarmos, o Dev C++ já mostra um arquivo fonte, onde já foi iniciado a Allegro, por isso eu disse que o Dev facilita bastante nossa vida. ![]()
Vou comentar as linhas de código criadas pelo Dev.
-
#include
-
-
/* assinatura das funções para quando iniciar e sair da biblioteca, é bom usar para organizar a estrutura do código fonte. */
-
void init();
-
void deinit();
-
-
/* funcao principal do arquivo fonte */
-
int main() {
-
/* chamada da função init() para inicializar a biblioteca allegro */
-
init();
-
-
/* loop onde sera criado o jogo/aplicação
-
while (!key[KEY_ESC]) {
-
/* put your code here */
-
}
-
-
/* chamada da função para desiniciar a Allegro */
-
deinit();
-
/* return 0 para finalizar o programa */
-
return 0;
-
}
-
END_OF_MAIN()
-
/* macro para manter a vantagem de poder ser compilada em várias plataformas. Obs: coloquei o comentário depois, para não dar erro. */
-
-
void init() {
-
-
/* declaração de 2 variáveis, uma para guarder a profundidade de cores suportada pelo computador do usuário (depth) e outra para guardar a resolução/janela (res), ambas inteiras (int) */
-
-
int depth, res;
-
-
/* funcao da biblioteca para inicialá */
-
allegro_init();
-
-
/* guarda a profundidade de cores que a maquina do usuário suporta em depth, retornada pela funcao desktop_color_depth() da Allegro */
-
depth = desktop_color_depth();
-
-
/* se retornou 0, usar 32bits de cor */
-
if (depth == 0) depth = 32;
-
-
/* setando a profundidade de cor para depth, a vantagem de se usar a mesma profundidade de cor do usuário é aumentar a velocidade, pois elimina a necessidade de conversões entre a usada na aplicação e a do usuário */
-
set_color_depth(depth);
-
-
/* cria uma nova janela do tamanho 640x480 */
-
res = set_gfx_mode(GFX_AUTODETECT_WINDOWED, 640, 480, 0, 0);
-
-
/* se res for 0, ocorreu um erro, entao mostra a mensagem de erro e sai do programa */
-
if (res != 0) {
-
allegro_message(allegro_error);
-
exit(-1);
-
}
-
-
/* aqui vamos iniciando tudo o que queremos usar do Allegro */
-
-
/* inicia o timer */
-
install_timer();
-
-
/* inicia o teclado */
-
install_keyboard();
-
-
/* inicia o mouse */
-
install_mouse();
-
/* add other initializations here */
-
}
-
-
void deinit() {
-
-
/* limpa o buffer do teclado */
-
clear_keybuf();
-
/* add other deinitializations here */
-
}
Para testarmos o programa, basta apertarmos F9. O Dev C++ pedirá para salvarmos o arquivo fonte. Podemos deixar o nome padrão main.c.
Se tudo ocorrer bem, e provavelmente ocorrerá, aparecerá a seguinte tela:

Bom, espero que tenham gostado. Qualquer dúvida comentem!
Até a próxima!

Diego Nadalini Lopes said,
Agosto 20, 2006 @ 22:01
É isso ai Túlio você está de parabéns ,compartilhando seus conhecimentos e tentando destravar a mente daqueles que o cerébro está quase fundindo,rsrs.
Abs.
jean said,
Setembro 13, 2007 @ 10:21
Bom
Ivair said,
Outubro 7, 2007 @ 15:03
Muito bom, este tutorial vai ajudar muito meus alunos de C.
Túlio Você já é um Ninja.
Tulio Faria said,
Outubro 9, 2007 @ 15:29
Olá pessoal,
obrigado pelos elogios...
Ivair, quanto mais eu aprendo mais eu acho que num sei nada... rs... Tô longe de ser um ninja
Abraços,
Walldemar said,
Novembro 23, 2007 @ 22:56
Bons dias,
Valeu por todas as dicas, tem sido de grande auxilio.
T +
obs.: Falta um " */ " na linha 12 do seu código , sei porque copiei para ter ele gravado com os comentários e notei que faltou.
Foster said,
Junho 5, 2008 @ 20:53
Boa noite!
Criei vergonha na cara agora em começar aprender Allegro.
Seu tutorial tá ótimo, facilitará e muito em meu aprendizado.
Vlw!