Пример 8.7. Программа рисует человечка, делающего утреннюю зарядку.





Program Animation; 
  Uses Crt, Graph; 
{подключение к программе библиотек Crt и Graph} 
  Const {вертикальные и горизонтальные координаты положения рук} 
  Vert : Array[1..3] of Integer = (190, 157, 120); 
  Horizont : Array[1..3] of Integer = (200, 190, 200); 
  Var 
  GrDriver, GrMode, GrError, i, j : Integer; 
BEGIN 
  GrDriver := Detect; InitGraph(GrDriver, GrMode, 'C:\TP\BGI'); 
  GrError := GraphResult; If GrError <> GrOk then Halt; 
  SetColor(LightGray); { установка светлосерого цвета для рамки} 
  Rectangle(20, 20, 480, 400); {рисование рамки} 
  SetColor(LightCyan); {установка яркоголубого цвета для текста} 
  OutTextXY(200, 40, 'П Р И В Е Т !'); 
  SetColor(LightGray); Circle (250, 130, 20); {голова} 
  SetColor(Yellow); Arc(250, 130, 0, 180, 26); {волосы} 
  Arc(250, 130, 0, 180, 24); Arc(250, 130, 0, 180, 22); 
  Line(250, 105, 244, 115); Line(250, 105, 250, 116); {чубчик} 
  Line(250, 105, 256, 115); 
  SetColor(LightCyan); Circle(241, 125, 4); {левый глаз } 
  Circle(259, 125, 4); {правый глаз} 
  SetColor(LightRed); 
  SetFillStyle(SolidFill, LightRed); 
  FillEllipse(250, 140, 6, 3); {рот } 
  Setcolor(Green); 
  Line(250, 152, 250, 220); {туловище } 
  Line(250, 220, 210, 290); {левая нога } 
  Line(250, 220, 290, 290); {правая нога} 
  Repeat {цикл прерывается нажатием любой клавиши} 
  For i := 1 to 3 do {Последовательный вывод трех положений рук:} 
  begin { вниз, на уровне плеч, вверх } 
  SetColor(LightCyan); Sound(200*i); 
  Line(250, 157, Horizont[i], Vert[i]); {левая рука} 
  Line(250, 157, 500-Horizont[i], Vert[i]); {правая рука} 
  Delay(300); {задержка} 
  SetColor(Black); {смена цвета на черный для повторного 
  pисования рук в том же положении 
  ("стирания" их с экрана) } 
  Line(250, 157, Horizont[i], Vert[i]); {левая рука } 
  Line(250, 157, 500-Horizont[i], Vert[i]); {правая рука} 
  end 
  until Keypressed; 
  SetColor(LightCyan); 
  Line(250, 157, Horizont[3], Vert[3]); {левая рука поднята } 
  Line(250, 157, 500-Horizont[3], Vert[3]); {правая рука поднята} 
  For i := 1 to 10 do { звуковая трель } 
  begin 
  Sound(1000); 
  Delay(50); 
  Sound(1500); 
  Delay(50) 
  end; 
  NoSound; { выключение звука } 
  CloseGraph;
END.

Другие записи

10.06.2016. Пример 8.2. Эта программа демонстрирует возможности изображения линий в графическом режиме.
Program Lines;    Uses Graph, Crt; {подключение к программе библиотек Crt и Graph}    Var    Key   : Char;    LineStyle   : Word; {номер стиля рисования линии}    Style …
10.06.2016. Пример 8.3. Эта программа демонстрирует возможности изображения символов в графическом режиме (требует наличия в текущем каталоге файлов шрифтов *.chr).
Program Symbols;    Uses Graph, Crt; {подключение к программе библиотек Crt и Graph}    Var    Key   : Char;    Font : String; {названия шрифтов }    Size, MyFont …
10.06.2016. Пример 8.4. Эта программа рисует закрашенный прямоугольник, меняя случайным образом цвет, тип штриховки и высоту тона звукового сопровождения.
Program MusicColor;    Uses Crt, Graph; {подключение к программе библиотек Crt и Graph}    Var    GrDriver, GrMode: Integer; {тип и режим работы графического драйвера}  BEGIN    GrDriver := Detect;…
10.06.2016. Пример 8.5. Эта программа рисует на экране звезду и закрашивает её, используя 12 типов штриховки.
Program Star;    Uses Crt, Graph;  {подключение к программе библиотек Crt и Graph}    Const { массив координат вершин многоугольника (звезды) }    TopsStar: Array[1..18] of Integer = (300,…
10.06.2016. Пример 8.6. Программа демонстрирует получение эффекта движения изображения прицела под управлением клавишей-стрелок клавиатуры с выводом координат центра прицела.
Program Sight;    Uses Crt, Graph; {подключение к программе библиотек Crt и Graph}    Const Step = 5; {шаг изменения координат центра прицела }    Instr = 'УПРАВЛЕНИЕ ДВИЖЕНИЕМ ПРИЦЕЛА - СТРЕЛКИ,…