Aprendendo Allegro 5
Início Janela Imagens Mensagem Fontes e texto Eventos Mouse Teclado Audio Timer Animações Sprites Jogo exemplo

Manipulando imagens

Neste exemplo vamos trabalhar com imagens. Este é o primeiro passo que tornará possível criar animações.

Analise o exemplo:

// Inclui o cabeçalho da bibilioteca Allegro 5
#include <allegro5/allegro.h>

// Inclui o cabeçalho do add-on para uso de imagens
#include <allegro5/allegro_image.h>

int main(void)
{
    // Variável representando a janela principal
    ALLEGRO_DISPLAY *janela = NULL;

    // Variável representando a imagem
    ALLEGRO_BITMAP *imagem = NULL;

    // Inicializa a Allegro
    al_init();

    // Inicializa o add-on para utilização de imagens
    al_init_image_addon();

    // Configura a janela
    janela = al_create_display(640, 480);

    // Carrega a imagem
    imagem = al_load_bitmap("hu3.bmp");

    // Desenha a imagem na tela
    al_draw_bitmap(imagem, 0, 0, 0);

    // Atualiza a tela
    al_flip_display();

    // Segura a execução por 10 segundos
    al_rest(10.0);

    // Finaliza a janela
    al_destroy_display(janela);

    return 0;
}

Na linha 5 fazemos o include do módulo allegro_image, que permite trabalhar com imagens tipo bmp e png.

ALLEGRO_BITMAP

Na linha 13 criamos um ponteiro chamado imagem do tipo ALLEGRO_BITMAP. Este tipo de ponteiro serve para criar uma imagem, que posteriormente será desenhada em uma tela (ALLEGRO_DISPLAY).

al_init_image_addon()

Na linha 19 chamamos a função al_init_image_addon(), que serve para inicializar o módulo que manipula imagens.

al_load_bitmap()

Na linha 25 chamamos a função al_load_bitmap(), que serve para carregar uma imagem do disco. A função recebe por parâmetro uma string com o caminho da imagem desejada. No exemplo foi usado a imagem abaixo, mas você pode substituir esta string por outra qualquer que reflita o caminho de uma imagem qualquer, ou colocar só o nome da imagem se ela estiver na mesma pasta do seu programa. Como a função retorno um ponteiro ALLEGRO_BITMAP, atribuímos a chamada da função à variável imagem.

al_draw_bitmap()

Na linha 28 chamamos a função al_draw_bitmap(), que serve para desenhar uma imagem. Ela recebe por parâmetro a imagem (ALLEGRO_BITMAP) que desejamos desenhar, e dois valores, representando as coordenadas X e Y que a imagem será desenhada. O quarto parâmetro representa flags que indicam se o bitmap será desenhado espelhado ou não. Use 0 caso não seja do interesse, como no exemplo.

Caso deseje mostrar na tela uma imagem redimensionada ou rotacionada, use as funções:

Note que a função al_draw_bitmap() irá desenhar a imagem na janela. Porém, nem sempre será assim. A função al_draw_bitmap() desenha a imagem no bitmap ativo. O que significa isso?

O allegro sempre tem definido um bitmap como sendo o bitmap ativo. E todas funções que desenham um bitmap, usam este bitmap como alvo. O alvo nesse nosso exemplo, é a janela (último display criado). Veremos mais adiante como mudar o bitmap ativo.

O resultado do programa acima será o surgimento da mesma tela do exercício passado, com uma imagem por cima. Após 10 segundos, esta tela some e o programa encerra.

al_get_bitmap_width() e al_get_bitmap_height()

Caso deseje saber a largura ou altura de um bitmap, chamamos as funções al_get_bitmap_width() e al_get_bitmap_height(), respectivamnte. Elas recebem o bitmap como parâmetro, e retornam o tamanho em pixels do bitmap.

Download dos arquivos

Outros links