Человек идет по дороге

uses Graph, Crt;
  var  Gd, Gm, i, j, k, Size, x, y, Xmax, Ymax: Integer; 
       P1, P2: Pointer;                                   { тип указатель }
Begin
  Gd := VGA;  Gm:=2;  InitGraph(Gd, Gm, 'c:\tp7\bgi');
  Size := ImageSize(0, 0, 20, 100);                            { размер области }
  SetLineStyle(0, 0, 3);                             { рисуем толстыми линиями }
                PieSlice(10, 10, 0, 360, 10);          { заполненный круг }
                FillEllipse(10, 40, 10, 20);       { заполненный эллипс }
                Line(8, 60, 0, 100); Line(12, 60, 20, 100); { ли-нии }

{ первый образ }

                PieSlice(60, 10, 0, 360, 10);
                FillEllipse(60, 40, 10, 20);
                Line(60, 60, 60, 100);

{ второй образ }
    GetMem(P1, Size);      { P1 - указатель адреса для хранения первого образа }
    GetImage(0, 0, 20, 100, P1^);{P1^ - содержимое (двоичный код) образа }

    GetMem(P2, Size);     { P2 - указатель адреса для хранения второго образа } 
   GetImage(50, 0, 70, 100, P2^);{P2^ - содержимое (двоичный код) образа }

     x:=0;  y:=200;                             { координаты начальной точки }
    ClearDevice;   Line( 0, 300, 600, 300);           { "дорога" }

  Repeat                           { имитация движения чередованием образов со смещением }
      PutImage(x, y, P1^, 1);  delay(150);  PutImage(x, y, P1^, 1);
        x:=x+10;                              { смещаем позицию на полшага }
      PutImage(x, y, P2^, 1);  delay(150);  PutImage(x, y, P2^, 1);
        x:=x+10                    
  Until x > GetmaxX - 20;                              { достижение края }

       FreeMem(P1, Size);   FreeMem(P2, Size);   CloseGraph
End.






В приведенной программе в память заносятся два образа человечка с разным положением ног.  Экран очищается и в цикле происходит поочередное извлечение образов со смещением по оси "х".  Каждое изображение хранится на экране ,  затем исчезает,  вследствие перерисовки в режиме XorPut

Комментариев нет:

Отправить комментарий

Если у вас интересные исходники и вы не прочь поделиться, то присылайте daslex@yandex.ru с указанием Темы: Графика Паскаль
К вашей работе будет прикреплено ваше авторство и по желанию добавлена ссылка на ваш сайт.
На одну страницу - Одна работа. На одну работу - Одна ссылка + указание автора


Основное требование - это один файл .pas без сторонних модулей (только с родными. предпочтение Graph).
Можно использовать ассемблерные вставки.

Все что Запускается у меня и работает, я выкладываю. в этом блоге.
Яндекс.Метрика