Падающий снег

Падающий снег

Программа создает эффект падающего снега. Синие снежинки плавно падают вниз.

Расположите на форме два компонента Timer1: TTimer и PaintBox1: TPaintBox с вкладки System. Выставьте начальные значения в инспекторе объектов (Object inspector)

Form1
 Color: clBlack;
 
PaintBox1
 Align: alClient
 
Timer1
 Enabled: false
 Interval: 5

Перейдите в инспекторе объектов на вкладку событий (events) и для формы на событие создания формы (OnCreate) задайте название процедуры. Лучше это сделать двойныым щелчком. Автоматически будет создана процедура procedure TForm1.FormCreate(Sender: TObject). Впишите в нее следующий код:

procedure TForm1.FormCreate(Sender: TObject);
Var
  i: Integer;
begin
  NumSnow := 100; //   Количество снежинок, не больше 1000
  // Начальные координаты снежинок, инициализация
  for i:=1 to NumSnow  do begin
    Snow[i].X := Random(Form1.ClientWidth);
    Snow[i].Y := Random(Form1.ClientWidth);
    SnowColor[i] := RGB(0,0,200+Random(56));
    SnowSize[i]  := Random(3);
  end;
  Timer1.Enabled := true; // Включение таймера
end;

Так как в программе используется массив координат, количество, цвет и размер снежинок в отдельных переменных, то необходимо их объявить в разделе программы var.

var
  Form1: TForm1;
  NumSnow: Integer;  // Количество снежинок, не больше 1000
  SnowColor: Array [1..1000] of TColor; // Цвет снежинки
  SnowSize : Array [1..1000] of Integer; // Размер снежинки
  Snow: Array [1..1000] of TPoint;  // Координаты снежинок

Теперь для компонента Timer1 на событие OnTimer создайте следующую процедуру

procedure TForm1.Timer1Timer(Sender: TObject);
Var
  i, j: Integer;
begin
 for j:=1 to 10 do begin
  i := Random(NumSnow) + 1; // Выбираем одну любую снежинку
  // Стираем ее цветом фона
  PaintBox1.Canvas.Brush.Color := clBlack;
  PaintBox1.Canvas.Pen.Color := clBlack;
  PaintBox1.Canvas.Rectangle(Snow[i].X-1, Snow[i].Y-1, 
                             Snow[i].X+2, Snow[i].Y+2);
  // Задаем ее новое положение (вниз и в сторону)
  Snow[i].X := Snow[i].X + Random(3) - 1;
  Snow[i].Y := Snow[i].Y + Random(3) + 1;
  // Если достинут конец формы, то начинаем движение сначала
  if Snow[i].Y >= Form1.ClientHeight then begin
    Snow[i].Y := 0;
    Snow[i].X := Random(Form1.ClientWidth);
  end;
  // Рисуем снежинку
  PaintBox1.Canvas.Brush.Color := SnowColor[i];
  PaintBox1.Canvas.Pen.Color := SnowColor[i];
  PaintBox1.Canvas.Ellipse(Snow[i].X-1, Snow[i].Y-1, 
                           Snow[i].X+SnowSize[i], Snow[i].Y+SnowSize[i]);
 end;
end;

Запустите программу. Run.

СКАЧАТЬ ПРОГРАММУРазмер
Урок падающий снег (764)387 кб

Отправил Сб, 07/15/2017 - 06:45

We sell the sale of iPhones 7 directly from Apple warehouses unofficially for 30% of the market value. Always available and in large quantities:
1. New Apple iPhone 7 Plus 256 GB (Jet Black) (FACTORY UNLOCKED) International Version no warrants - $ 303
2. New Apple iPhone 7 Plus 256GB Factory Unlocked CDMA / GSM Smartphone - Black (Certified Refurbished) - $ 307
3. New Apple iPhone 7 PLUS (5.5-inch) A1661 128GB Unlocked Smartphone for GSM + CDMA Carriers - Rose Gold - $ 303
We work all over the world and only on an advance payment, we accept only bitcoin. Attention!!! We do not work with Russia and the CIS countries. When ordering from 10 pcs. The price is 20% of the market value. We have a priority in wholesale customers. If you do not trust us, or you do not like something, you pass by, we will not respond to stupid reports. To receive the details for payment, please write to the e-mail: apple@apple-cheap-iphone.xyz

Отправил Ср, 03/15/2017 - 15:39

Не могу понять, что я вообще делаю со своей жизнью.

Отправил Чт, 05/05/2016 - 21:55

если изменить цвет фона то остается следы почему не могу понять, и хотела изменить размер снежка тоже самое как можно исправить

Отправил Пнд, 04/27/2015 - 08:55

не пойму как выведенная на экран снежинка долетает до
конца экрана , ведь она рисуется и тут же стирается и
тут же рисуется другая с другими координатами
глупый, понимаю ,вопрос ,но вот уже года полтора не
могу понять этот код и никто объяснить не может

Отправил Пнд, 04/27/2015 - 08:20

не могу понять как на экране
отражаются и двигаются куча снежинок

Последние комментарии

  • Tacwolf chaturbate threesome videos with lexi and jordin Alexi and lexi lapetina African albino breasts pussy pics Erection rub in formulas for penis Leukocyte test strip results Fat people falling down stairs Naked middle aged woman Espiando a mis suegros cuando cojen casero Amateur romantic sex...
  • Exotic escorts erotic escorts southbend indiana Tanya cyntheria playing with cum Free german wives girlfriends sex videos Dick content golf micjigan Free teen panties links What are sex beads Treatment to quit smoking Indian teen wet pussy Average size of male dick Cleft chin women naked Husbands...
  • Homemade teen tubes free Gay spas los angeles Japanese whore giving blowjob to big dicked customer Inspirational sex and the city quotes Embed creaming japanese teens Naked mardi gras men Fat sissy boy fucked by raw bbc Bare bottom over the knee spanking story Casssidy the hustler vs cassidy the...

Счетчики