Beruflich Dokumente
Kultur Dokumente
Introduo biblioteca
Allegro
Introdu
Introduo
Iniciando
1
Iniciando
Vamos ao cdigo:
#include <allegro.h>
Gr
Grficos (ou o que importa a aparncia
aparncia)
Gr
Grficos (ou o que importa a aparncia
aparncia)
Imagens
Declarao:
BITMAP* imagem; // bitmap ou sprite
Bitmap pr-definido para a tela: screen
Carga:
imagem = load_bitmap(bola.bmp,palheta_de_cores);
Pode-se omitir a palheta de cores passando-se NULL em seu lugar
A cor RGB (255,0,255) a cor transparente no allegro
Se a imagem no estiver acessvel retorna NULL
if ((imagem=load_bitmap(bola.bmp,NULL))==NULL){
fprintf(stderr,Erro ao carregar bola.bmp\n);
exit(-1);
}
Existe uma forma de se inserir os bitmaps no executvel
(avanado)
Programao/Anlise Orientada a Objetos Biblioteca Allegro 6
2
Gr
Grficos (ou o que importa a aparncia
aparncia)
Desenhando Imagens
Importante: antes de iniciar o processo de desenho de vrias
imagens adquira a posse da tela e depois libere-a:
acquire_screen()
release_screen()
Use a funo blit para desenhar coisas na tela:
draw_sprite( onde, o que, posio x , posio y )
Liberando memria:
Quando no forem mais ser usadas, destrua as imagens com
destroy_bitmap()
Gr
Grficos (ou o que importa a aparncia
aparncia)
int main(int argc, char* argv[])
{
BITMAP* imagem;
allegro_init();
install_keyboard();
set_color_depth(16);
set_gfx_mode(GFX_AUTODETECT_WINDOWED,800,600,0,0);
imagem = load_bitmap("bola.bmp",NULL);
acquire_screen();
draw_sprite(screen, imagem, 0, 0 );
release_screen();
readkey();
destroy_bitmap(imagem); // Acabou o uso da imagem
return(0);
}
END_OF_MAIN();
Transparncias
3
Movendo coisas na tela
4
Mundo Perigoso
tecle <esc> para sair
Exemplo
#include <stdio.h>
#include <stdlib.h>
#include <allegro.h>
#define PASSO 2
int inicia(void);
void principal(void);
void finaliza(void);
principal();
finaliza();
return 0;
}
END_OF_MAIN();
5
int inicia (void)
{
allegro_init();
install_keyboard();
set_color_depth(COLOR_BITS);
if (set_gfx_mode(GFX_AUTODETECT, MAX_X,
MAX_Y, V_MAX_X, V_MAX_Y) < 0)
{
printf( "Erro ao inicializar o modo grafico.\n " );
return (FALSE);
}
return (TRUE);
}
set_palette(black_palette);
clear(tela);
draw_sprite(tela, nave, x, 4 * MAX_Y / 5);
blit(tela, screen, 0, 0, 0, 0, MAX_X, MAX_Y);
fade_in(pal, 4);
Programao/Anlise Orientada a Objetos Biblioteca Allegro 17
while (!key[KEY_ESC])
{
clear(tela);
textout_ex(tela,font, "Mundo perigoso" , 1,1,10,0);
textout_ex(tela,font, "Press esc to quit" ,1,12,11,0);
draw_sprite(tela, nave, x, 4 * MAX_Y / 5);
blit(tela, screen, 0, 0, 0, 0, MAX_X, MAX_Y);
if ((key[KEY_LEFT]) && (!key[KEY_RIGHT]))
{
x -= PASSO;
}
if ((key[KEY_RIGHT]) && (!key[KEY_LEFT]))
{
x += PASSO;
}
}
fade_out(4);
}
Programao/Anlise Orientada a Objetos Biblioteca Allegro 18
6
void finaliza (void)
{
allegro_exit();
}
Exercicio