/* * Дикий Григорий * Вариант 16. Задача 1 */ #include #include #include #include "SDL.h" #include "SDL_draw.h" #define N 20// Количесво снежинок /* Константные выражения для размера экрана */ const int scrwidth = 1024, scrheight = 720 , scrdepth = 32; /* Задаем структуру для описания снежинки */ struct snowflake { Sint16 x0, y0, l, c1, c2, c3, s1 ,s2; // l - радиус }; /* Функция рисует одну снежинку */ void draw_snowflake(struct snowflake PAR, SDL_Surface *screen){ Draw_HLine(screen, PAR.x0,PAR.y0, PAR.x0+PAR.l, SDL_MapRGB(screen->format, PAR.c1,PAR.c2, PAR.c3)); // Горизонтальная Draw_VLine(screen,PAR.x0+PAR.l/2,PAR.y0-PAR.l/2,PAR.y0+PAR.l/2, SDL_MapRGB(screen->format, PAR.c1,PAR.c2, PAR.c3)); // Вертикальная Draw_Line(screen,PAR.x0+PAR.l/4,PAR.y0-PAR.l/4, PAR.x0+3*PAR.l/4, PAR.y0+PAR.l/4, SDL_MapRGB(screen->format, PAR.c1,PAR.c2, PAR.c3)); // Наклонная 1 Draw_Line(screen,PAR.x0+PAR.l/4,PAR.y0+PAR.l/4, PAR.x0+3*PAR.l/4,PAR.y0-PAR.l/4, SDL_MapRGB(screen->format, PAR.c1,PAR.c2, PAR.c3)); } int main(int argc, char** argv){ SDL_Surface *screen, *image; SDL_Event event; struct snowflake SN[N]; int run=1; /* Начальная инициализация */ SDL_WM_SetCaption( "SNOWfLAKES",0); // Название окна if(SDL_Init(SDL_INIT_VIDEO)<0){ printf("Unable to init SDL: %s\n", SDL_GetError()); return 1; } screen = SDL_SetVideoMode(scrwidth, scrheight, scrdepth, SDL_ANYFORMAT); if(!screen){ printf("Unable to set 1024x720 video: %s\n", SDL_GetError()); return 1; } image = SDL_LoadBMP("winter.bmp"); // Грузим картинку /* Рисуем снежинку */ for(int i=0;i