Движение шарика при нажатии клавиши вверх вниз влево вправо - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Приветствую вас.Надо сделать что бы шарик двигался при нажатии клавиши вверх вниз влево вправо. Это у меня получилось но шарик постоянно мигает(ну я не знаю как по другому назвать это). И как сделать что бы программа выключалась при нажатии Escape? Как это убрать? Вот мой код:
Заранее спасибо.
Прошу прощения.Строки 4 3 перепутаны.

Решение задачи: «Движение шарика при нажатии клавиши вверх вниз влево вправо»

textual
Листинг программы
uses graphabc;
var x,y:integer;
    f:boolean;
procedure klavisha(key:integer);
begin
case key of
VK_Up:y:=y-10;
VK_Down:y:=y+10;
VK_Left:x:=x-10;
Vk_Right:x:=x+10;
Vk_Escape:begin
          CloseWindow;
          f:=false;
          end;
end;
end;
procedure sharic;
begin
setbrushcolor(clBrown);
circle(x,y,20);
end;
 
begin
f:=true;
x:=windowwidth div 2;
y:=windowheight div 2;
lockdrawing;
repeat
clearwindow;
onkeydown:=klavisha;
sharic;
sleep(50);
redraw;
until not f;
end.

Объяснение кода листинга программы

  1. В начале кода подключается библиотека graphabc.
  2. Переменные x и y инициализируются как целые числа.
  3. Флаг f инициализируется как true.
  4. В процедуре klavisha определяется набор ключевых клавиш и их действия.
  5. В процедуре sharic устанавливается цвет кисти на коричневый, рисуется круг с радиусом 20.
  6. В основной части программы устанавливается начальные значения для x и y, включается блокировка рисования, и запускается цикл.
  7. В цикле на каждое нажатие клавиши вызывается процедура klavisha.
  8. Если нажата клавиша VK_Escape, то закрывается окно, и флаг f устанавливается в false.
  9. После каждого нажатия клавиши выполняется очистка окна, вызывается процедура klavisha, рисуется круг с новыми значениями x и y, и выполняется задержка.
  10. Цикл продолжается до тех пор, пока не будет установлено значение f в false, что означает завершение программы.

Оцени полезность:

9   голосов , оценка 4 из 5
Похожие ответы