Учеба и наука

Мультипликация Delphi - вопрос №621982

Изобразить на экране точку, пересекающую с постоянной скоростью экран справа налево параллельно его горизонтальной оси. Как только точка доходит до левого края, в этот момент от правого края в строке, выбранной с помощью датчика случайных чисел, начинает движение другая точка и т.д. Цвет точки также задается с помощью датчика случайных чисел.

апрель 29, 2013 г.

  • Всего ответов: 2

  • Сергей - аватарка

    Сергей

    9-й в Технологиях

    могу сделать. Пишите в чат. Здесь все равно выложить исходники проекта Delphi не получится

    апрель 29, 2013 г.
  • Сергей - аватарка

    Сергей

    9-й в Технологиях

    вот что нужно сделать. Создать новый проект Delphi. Все названия форм и проекта оставляем по умолчанию. На форму помещаем компонент Timer из закладки System. Interval можно ему поставить = 5 милисекунд.

    Вот текст этой программы этой формы, соответствующий вашей задаче

    unit Unit1;

    interface

    uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, ExtCtrls;

    type
    TForm1 = class(TForm)
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    private
    { Private declarations }
    public
    { Public declarations }
    end;

    var
    Form1: TForm1;
    x, y: integer;
    c: TColor;

    implementation

    {$R *.dfm}

    procedure TForm1.FormCreate(Sender: TObject);
    begin
    x := Form1.ClientRect.Right;
    y := 100;
    c := RGB(255, 0, 0);
    end;

    procedure TForm1.Timer1Timer(Sender: TObject);
    begin
    Form1.Canvas.Brush.Color := RGB(0, 0, 0);
    Form1.Canvas.FillRect(Form1.ClientRect);
    dec(x);
    Form1.Canvas.Pixels[x, y] := c;
    if x = 0 then
    begin
    x := Form1.ClientRect.Right;
    y := 1 + Random(Form1.ClientRect.Bottom);
    c := RGB(Random(255), Random(255), Random(255));
    end;
    end;

    end.

    апрель 29, 2013 г.

Похожие вопросы