Движение шарика при нажатии клавиши вверх вниз влево вправо - 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.
Объяснение кода листинга программы
- В начале кода подключается библиотека graphabc.
- Переменные x и y инициализируются как целые числа.
- Флаг f инициализируется как true.
- В процедуре klavisha определяется набор ключевых клавиш и их действия.
- В процедуре sharic устанавливается цвет кисти на коричневый, рисуется круг с радиусом 20.
- В основной части программы устанавливается начальные значения для x и y, включается блокировка рисования, и запускается цикл.
- В цикле на каждое нажатие клавиши вызывается процедура klavisha.
- Если нажата клавиша VK_Escape, то закрывается окно, и флаг f устанавливается в false.
- После каждого нажатия клавиши выполняется очистка окна, вызывается процедура klavisha, рисуется круг с новыми значениями x и y, и выполняется задержка.
- Цикл продолжается до тех пор, пока не будет установлено значение f в false, что означает завершение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д