void hline(BITMAP *bmp, int x1, int y, int x2, int color);
Descrição dos parâmetros da função: O primeiro parâmetro, BITMAP *bmp, é o bitmap de destino para a linha que será desenhada, que pode ser a tela é só colocar screen no local e será apresentado na tela. Os próximos três parâmetros, int x1, int y e int x2; O x1 e x2 especificam dois pontos na tela que marca o tamanho da linha e o eixo y especifica onde a linha deve ser desenhada. Talvez essa imagem te esclareça melhor como funciona a função.
hline(screen, 178, 200, 510, makecol(255, 255, 255));
Bom vamos agora ao código:
// Cabeçalho com a inclusão das bibliotecas
// necessárias para esse programa
#include <conio.h>
#include <stdlib.h>
#include <allegro.h>
// Inicio do programa
void main(void)
{
int x1, y, x2;
int red, green, blue, color;
// Inicializa a Allegro
allegro_init();
// Inicializa o teclado
install_keyboard();
// Inicializa o lançamento de um número aleatório
srand(time(NULL));
// Inicializa o modo do video para 640x480
int ret = set_gfx_mode(GFX_AUTODETECT_WINDOWED, 640,
480, 0, 0);
if(ret != 0){
allegro_message(allegro_error);
return;
}
// Mostra a resolução da tela
textprintf(screen, font, 0, 0, 15,
"HLines Program - %dx%d - Pressione ESC para
sair",
SCREEN_W, SCREEN_H);
// Aguarda o pressionamento da tecla ESC
while(!key[KEY_ESC])
{
// Configura uma localização aleatória
x1 = 10 + rand() % (SCREEN_W - 20);
y = 10 + rand() % (SCREEN_H - 20);
x2 = 10 + rand() % (SCREEN_W - 20);
// Configura uma cor aleatória
red = rand() % 255;
green = rand() % 255;
blue = rand() % 255;
color = makecol(red, green, blue);
// Desenha uma linha horizontal
hline(screen, x1, y, x2, color);
}
// finaliza o programa
allegro_exit();
}
END_OF_MAIN();
Um exemplo de execução desse código pode ser visto nesse video:
Você já deve ter notado que o programa HLines é muito semelhante ao programa Pixels, com apenas algumas linhas que diferem dentro do loop while. Eu só vou mostrar as diferenças a partir deste ponto em diante, em vez de listar o código fonte inteiro para cada programa, porque na maioria dos casos basta substituir algumas linhas dentro do main. É bastante óbvio que somente algumas linhas dentro do loop while precisam ser mudado para se gerar outro efeito.
Clique aki para baixar esse exemplo.

Nenhum comentário:
Postar um comentário