{ Внимание! Для работы этой программы необходимо, чтобы:
1) Turbo Pascal был установлен в каталог C:\TP;
2) каталог C:\TP\BGI содержал файл egavga.bgi ;
3) в меню Options/Directories был указан путь
к файлу graph.tpu, например, С:\TP\UNITS.
Если Turbo Pascal установлен в другом каталоге, нужно изменить
путь к нему в процедуре InitGraph (9-я строка программы).
}
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.