//================================================================ // 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