BIBLIOTECA ALLEGRO
O QUE É?
A Allegro é uma biblioteca criada para o desenvolvimento de jogos e aplicações multimídia. É uma plataforma transversal e trabalha com muitos compiladores diferentes. É gratuita, não há limitação de uso e é fácil de usar. Com ela pode ser inserido varias funções como: imagens, temporizador, entradas de dados: mouse, teclado e joystick, saída de vídeo: gráficos e texto.
Foi criada por Shawn Hargreaves que hoje trabalha na Microsoft. Sua intenção era de fazer uma biblioteca de código simples para que o iniciante na área de programação de jogos não precisasse ler uma grande quantidade de livros.
COMO INSTALAR ALLEGRO NO AMBIENTE LINUX?
Há duas maneiras de instalar a biblioteca.
-Primeira :
No Desktop siga os seguintes passos:
SYSTEM – ADMINISTRATION – SYNAPTIC PACKAGE MANAGER
Faz uma busca pelo nome allegro. Dos pacotes disponíveis, instala o pacote liballegro4.2-dev. Após baixá-lo a biblioteca estará instalada.
Figura1: Baixando o pacote pelo Synaptic Package Manager.
-Segunda:
Abra o terminal e digite: sudo apt-get install liballegro4.2-dev. Logo após, o programa pedirá o password, então digite-o. Com isso, a biblioteca será instalada.
Figura 2: Baixando o pacote pelo terminal.
EXEMPLO DE APLICAÇAO DA ALLEGRO:
Jogo Batalha Naval
O jogo Batalha Naval foi desenvolvido com aplicações da biblioteca Allegro em código fonte C. Nele precisamos incluir alguns comandos da Allegro que formam o laço principal do jogo e que sem eles não conseguiríamos utilizar nenhuma função da mesma.
São eles:
#include < allegro.h> // inclui a biblioteca
allegro_init(); //inicia a biblioteca allegro
set_color_depth(); // configuração de cores
set_gfx_mode(); // configuração de vídeo
Sendo os três últimos comandos dentro da função principal.
Para se usar as imagens necessárias, inicialmente criamos um ponteiro que aponta para todas as imagens da memória utilizadas no jogo. Esse ponteiro aponta para o tipo BITMAP, que é um formato de arquivo gráfico.
BITMAP *imagem[5];
Onde:
Imagem[0] é um buffer;
Imagem[1] é o desenho do fundo;
Imagem[2] é o desenho da água;
Imagem[3] é o desenho do barco;
Imagem[4] é o desenho da tábua;
Com o comando create_bitmap(); definimos o tamanho da imagem que queremos carregar na memória. Onde passamos como argumentos, a largura e a altura da imagem, respectivamente.
imagem[1] = create_bitmap (800, 600);
Com o comando load_bitmap(); carregamos a imagem na memória. Onde passamos como argumentos, o caminho da imagem e a paleta de cores, respectivamente.
imagem[1] = load_bitmap ("tiles/back0.bmp", NULL);
Executando estes dois comandos em cada imagem usada no jogo.
Porém, os comandos acima não são suficientes para exibição na tela, pois apenas servem para declarar, definir e carregar a imagem.
Então usamos uma das três funções que são responsáveis por desenhar a imagem na tela: a função blit();.
Esta função é responsável por “copiar” uma imagem ‘origem’ em uma imagem ‘destino’, especificando as posições de ambas, e em seguida o tamanho final.
blit( imagem[1], imagem[0], 0, 0, 0, 0, 800, 600); // “copiando” a imagem[1] e “colando” no buffer...
blit(imagem[0], screen, 0, 0, 0, 0, 800, 600); // “copiando” a imagem final e “colando” na tela.
Essa função recebe como argumentos:
1. Imagem de origem: imagem[0]
2. Imagem de destino: screen
3. Posição x da imagem de origem: 0
4. Posição y da imagem de origem: 0
5. Posição x da imagem de destino: 0
6. Posição y da imagem de destino: 0
7. Largura final da imagem copiada: 800
8. Altura final da imagem copiada: 600
Com isso, podemos ver o fundo do jogo.
Figura 3: Imagem fundo na tela.
Para desenhar os tabuleiros, temos q repetir a mesma operação, sempre respeitando as posições das imagens.
Com uma função de repetição formamos uma matriz 10 x 10 de imagens tábua. Jogando as mesmas no buffer.
blit( imagem[3], imagem[0], 0, 0, x, y, 30, 30); onde x e y variam de acordo com a posição de cada imagem de tábua na tela.
Figura 4: Imagens tábua formando um tabuleiro no buffer.
E novamente com o comando blit();, ‘copiamos’ a imagem do tabuleiro no buffer e jogamos na tela.
Figura 5: Exibição do primeiro tabuleiro na tela.
blit(imagem[0], screen, 0, 0, 50, 150, 300, 300); // comando do primeiro tabuleiro.
Figura 6: Exibição dos tabuleiros.
blit( imagem[0], screen, 0, 0, 450, 150, 300, 300); // comando do segundo tabuleiro.
Com tudo, precisamos fazer com que as figuras da água e do barco apareçam com o decorrer do jogo.
Basta usar o mesmo comando blit();, jogar a imagem da água ou barco no buffer e depois na tela, fazendo com que esta substitua a posição da imagem tábua numa determinada posição de acordo com o decorrer do jogo.
Figura 7: Exibição do barco e da água nos tabuleiros.
Mas, além das figuras, o jogador precisa ter informação referente ao jogo. Para isso é necessário colocar texto.
Então usamos a função textprintf_ex(); Para exibir textos na tela.
Figura 8: Exibição de textos na tela.
textprintf_ex(screen,font,170,460,makecol(255,255,255),-1,”PARABÉNS VOCÊ VENCEU!!!");
textprintf_ex(screen,font,170,480,makecol(255,255,255),-1,"Deseja Jogar Novamente? 1- SIM, 2- NÃO");
Essa função recebe como argumentos:
- Destino do texto: screen
- Tipo da fonte: font //sempre usamos esse tipo de fonte, pois é a fonte padrão da Allegro.
- Posição x e posição y da fonte na tela: 170, 480.
- Cor do texto: makecol(225,225, 255) - (Branca)
- Cor de fundo do texto: -1 - (Transparente)
- Texto: “Deseja jogar novamente? 1- SIM, 2 - NÃO”
Essa função makecol(); é responsável por indicar cores. Ela é composta de 3 trios de valores separados por uma vírgula.
O primeiro trio é a “quantidade” de vermelho, o segundo é a quantidade de “verde”, e o terceiro é a quantidade de “azul”. Sendo este tipo de ‘colorido’ chamado de RGB.Com seus valores variando de 000 – 225. E para um fundo transparente ao invés de usar a função makecol(); utiliza- se o valor -1 no argumento.
E para finalizar, usamos a função allegro_exit();.
COMO COMPILAR
gcc < nomedoarquivo>.c -o < nomedojogo>`allegro-config --libs`
Figura 9: Compilar usando allegro.
CONCLUSÃO:
A biblioteca Allegro é de grande ajuda para quem quer utilizar interface gráfica, mas não tem muito domínio em programação. E sendo ela voltada principalmente para o desenvolvimento de jogos, torna-a uma boa alternativa comercial, já que o mercado de jogos cresce bastante. Como os comandos da biblioteca são bem práticos e de simples aplicação, facilita o desenvolvimento do código, tornando-se uma boa ferramenta para programadores iniciantes em aplicações gráficas.
AGRADECIMENTOS:
Bruno Rafael
Emanuel Franco
BIBLIOGRAFIA:
http://www.bdjogos.com/linguagens.php?id=3
http://www.lcg.ufrj.br/Cursos/mab604/allegro/view
http://www.tuliofaria.net/arquivos/Artigo_Allegro.pdf
TUTORIAL FEITO POR:
CECÍLIA MAYARA G. DA SILVA
FLAVIANY RODRIGUES PINHEIRO
LARISSE VITAL DA SILVA







