//================================================================
// Nome do Arquivo: random_polygons.c
// Filename: random_polygons.c
//
// Descrição: O programa exibe polígonos preenchidas em posições
// e cores aleatórias, com 3 a 12 vértices, usando a
// função polygon da biblioteca allegro
//================================================================
#include <stdlib.h>
#include <time.h>
#include <allegro.h>
int main(int argc, char *argv[])
{
// Total de vértices e ponteiro de pontos do polígono
int vertices, *points;
// Cor do polígono
int color;
// Contador
int i;
// Inicializa a biblioteca Allegro
allegro_init();
// Inicializa o módulo do relógio
install_timer();
// Inicializa o teclado
install_keyboard();
// Define a profundidade de cores para 32 bits
set_color_depth(32);
// Define a resolução de 640x480 no modo janela
set_gfx_mode(GFX_AUTODETECT_WINDOWED, 640, 480, 0, 0);
// A falta de acento é proposital
// Muda o título da janela
set_window_title("Poligonos");
// Inicia o gerador de números aleatórios
srand(time(NULL));
// Fica em loop até pressionar a tecla ESC
while(!key[KEY_ESC])
{
// Gera um total aleatório de vértices
vertices = (rand() % 10) + 3;
// Aloca memória para o polígono
points = (int *) malloc(sizeof(int) * vertices * 2);
// Gera os pontos do polígono de forma aleatória
for(i = 0; i < vertices; i++) {
points[i * 2] = rand() % 640;
points[i * 2 + 1] = rand() % 480;
}
// Cria uma cor aleatória
color = makecol(rand() % 256, rand() % 256, rand() % 256);
// Desenha um polígono em uma posição e cor aleatória
polygon(screen, vertices, points, color);
free(points);
// Espera 300 milisegundos para economizar processamento
rest(300);
// Espera a sincronização vertical
vsync();
}
// Sai do programa
allegro_exit();
return 0;
}
// Esta macro converte o main para WinMain()
END_OF_MAIN();
Polígonos Aleatórios em Allegro – C
Deixe um comentário









