Управление клавиатурой - 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.

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

  1. Объявлены переменные x, y, f типа integer.
  2. Определена процедура klavisha, которая обрабатывает нажатия клавиш.
  3. В процедуре klavisha используется оператор case для определения, какая клавиша была нажата.
  4. Если была нажата клавиша VK_Left, то значение переменной x уменьшается на 10, если это возможно.
  5. Если была нажата клавиша VK_Right, то значение переменной x увеличивается на 10, если это возможно.
  6. Если была нажата клавиша VK_Escape, то закрывается окно и переменная f устанавливается в false.
  7. Определена процедура rect, которая рисует прямоугольник на экране.
  8. В основной части программы переменная f устанавливается в true.
  9. Значение переменной x устанавливается в середину окна, а значение переменной y также устанавливается в середину окна.
  10. Включается блокировка рисования.
  11. В цикле в течение 50 миллисекунд выполняются следующие действия:
    • Очищается окно.
    • Начинается обработка нажатий клавиш.
    • Рисуется прямоугольник.
    • Осуществляется задержка в 50 миллисекунд.
    • Осуществляется перерисовка.
  12. Цикл продолжается до тех пор, пока переменная f не станет false.
  13. Выключается блокировка рисования.
  14. Завершается программа.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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