Управление клавиатурой - PascalABC.NET
Формулировка задачи:
Помогите написать программу чтобы можно было прямоугольник двигать по горизонтали по заданным координатам через клавиатуру
Решение задачи: «Управление клавиатурой»
textual
Листинг программы
uses graphabc; var x,y:integer; f:boolean; procedure klavisha(key:integer); begin case key of VK_Left:if x>60 then x:=x-10; Vk_Right:if x<windowwidth-60 then x:=x+10; Vk_Escape:begin CloseWindow; f:=false; end; end; end; procedure rect; begin setbrushcolor(clRed); rectangle(x-50,y-25,x+50,y+25); end; begin f:=true; x:=windowwidth div 2; y:=windowheight div 2; lockdrawing; repeat clearwindow; onkeydown:=klavisha; rect; sleep(50); redraw; until not f; end.
Объяснение кода листинга программы
- Объявлены переменные x, y, f типа integer.
- Определена процедура klavisha, которая обрабатывает нажатия клавиш.
- В процедуре klavisha используется оператор case для определения, какая клавиша была нажата.
- Если была нажата клавиша VK_Left, то значение переменной x уменьшается на 10, если это возможно.
- Если была нажата клавиша VK_Right, то значение переменной x увеличивается на 10, если это возможно.
- Если была нажата клавиша VK_Escape, то закрывается окно и переменная f устанавливается в false.
- Определена процедура rect, которая рисует прямоугольник на экране.
- В основной части программы переменная f устанавливается в true.
- Значение переменной x устанавливается в середину окна, а значение переменной y также устанавливается в середину окна.
- Включается блокировка рисования.
- В цикле в течение 50 миллисекунд выполняются следующие действия:
- Очищается окно.
- Начинается обработка нажатий клавиш.
- Рисуется прямоугольник.
- Осуществляется задержка в 50 миллисекунд.
- Осуществляется перерисовка.
- Цикл продолжается до тех пор, пока переменная f не станет false.
- Выключается блокировка рисования.
- Завершается программа.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д