Для управления движением объекта с клавиатуры необходимо использовать функции Keypressed и readkey. Следующая программа сначала анализирует, была ли нажата какая-либо клавиша, а если была, то запоминает какая. Если была нажата буква “a “, то шарик продолжает двигаться влево, если – “s”, то вправо.
program paint1;
uses crt,graph;
var
i,gd,gm,x,y,h:integer;
r:word;
s:string;
c:char;
begin
gd:=detect;
initgraph(gd,gm,'');
outtextXY(20,50,'af-af ');
line(0,300,620,300);
x:=30; y:=269; h:=10;
for i:=1 to 400 do
begin
setcolor(3);
circle(x,y,30);
delay(5000);
setcolor(0);
circle(x,y,30);
x:=x+h;
if keypressed then begin {управление движением}
c:=readkey;
if c= 'a'then h:=-10;
if c= 's'then h:=10;
end;
end;
readln;
closegraph;
end.
Рисование сложных объектов.
Если рисуется сложный объект, то удобно оформить его рисование как отдельную процедуру (procedure) с параметрами. В приведенной ниже программе параметрами процедуры являются координаты и цвет рисующегося объекта. Основная программа вычисляет новые координаты объекта и вызывает процедуру colobok то фиолетовым цветом (с=5), то цветом фона (с=0).
programpaint;
usesgraph, crt;
Var
i, h, gd, gm: integer;
Label
10;
procedurecolobok(x, y: integer; c: word);
{процедура рисующая колобок}
Begin
setcolor(c);
circle(x, y, 30); {тело колобка}
rectangle(x-12, y-10, x-7, y-15); {глаз}
rectangle(x+12, y-10, x+7, y-15); {второй глаз}
ellipse(x, y, 180, 360, 10, 5); {рот}
end;
Begin
{основная программа}
gd:=detect;
initgraph(gd, gm, ‘’);
line(0, 300, 620, 300); {рисует дорожку}
{рис. движущийся колобок}
h:=100;
for i:=1 to 40 do
Begin
colobok(h, 269, 0); {стираем колобок}
h:=100+i*10; {вычисляем новую координату}
colobok(h, 269, 5); {рисуем колобок}
delay(500);
if keypressed = true then goto 10; {если нажата к-л. клавиша переходим на 10}
end;
10:
colobok(h, 269, 0); {колобок}
colobok(h, 250, 7); {подпрыгивает}
delay(500);
colobok(h, 250, 0); {и}
outtextxy(h, 250, ‘bu-u-uh’); {лопается}
readln;
closegraph; {отмена графического режима}
End.
Замечание: Продолжительность задержки в функции delay(n) определяется параметрами компьютера, на котором Вы работаете. Если объект мелькает на экране слишком быстро, увеличьте n.