Организовать перемещение буквы вдоль определенной координаты при нажатии клавиш - PascalABC.NET
Формулировка задачи:
Всем привет, как организовать перемещение буквы вдоль определенной координаты при нажатии клавиш?
Буквы я с помощья оператора "Line" нарисовал, а как перемещать их не доходит.
Решение задачи: «Организовать перемещение буквы вдоль определенной координаты при нажатии клавиш»
textual
Листинг программы
- uses graphABC;
- var x,y:integer;
- f:boolean;
- procedure K(n:integer);
- begin
- Line(x+10*n,y+20*n,x+20*n,y+10*n); //Буква "К"
- Line(x+20*n,y+10*n,x+40*n,y+10*n);
- Line(x+40*n,y+10*n,x+30*n,y+20*n);
- Line(x+10*n,y+20*n,x+30*n,y+20*n);
- Line(x+30*n,y+20*n,x+30*n,y+50*n);
- Line(x+30*n,y+50*n,x+60*n,y+20*n);
- Line(x+60*n,y+20*n,x+80*n,y+20*n);
- Line(x+80*n,y+20*n,x+40*n,y+60*n);
- Line(x+40*n,y+60*n,x+80*n,y+100*n);
- Line(x+80*n,y+100*n,x+60*n,y+100*n);
- Line(x+60*n,y+100*n,x+30*n,y+70*n);
- Line(x+30*n,y+70*n,x+30*n,y+100*n);
- Line(x+30*n,y+100*n,x+10*n,y+100*n);
- Line(x+10*n,y+100*n,x+10*n,y+20*n);
- Line(x+40*n,y+10*n,x+40*n,y+40*n);
- Line(x+40*n,y+80*n,x+40*n,y+90*n);
- Line(x+40*n,y+90*n,x+30*n,y+100*n);
- Line(x+60*n,y+20*n,x+70*n,y+10*n);
- Line(x+70*n,y+10*n,x+90*n,y+10*n);
- Line(x+90*n,y+10*n,x+80*n,y+20*n);
- Line(x+80*n,y+100*n,x+90*n,y+90*n);
- Line(x+90*n,y+90*n,x+50*n,y+50*n);
- end;
- procedure KeyDown(key:integer);
- begin
- case key of
- VK_Right:x:=x+10;
- VK_Left: x:=x-10;
- VK_Up: y:=y-10;
- VK_Down: y:=y+10;
- else f:=false;
- end;
- end;
- var n:integer;
- begin
- f:=true;
- repeat
- write('Введите число от 3 до 10: ');
- readln(n); //Масштаб
- until n in [3..10];
- SetWindowSize (250*n,150*n); //Размер окна
- x:=0;
- y:=0;
- lockdrawing;
- repeat
- clearwindow;
- onkeydown:=KeyDown;
- K(n);
- sleep(50);
- redraw;
- until not f;
- end.
Объяснение кода листинга программы
- В начале кода объявляются переменные x, y и f типа integer.
- Далее определена процедура K, которая рисует букву
К
заданного размера в заданной точке. - Следующая процедура KeyDown обрабатывает нажатия клавиш.
- Затем определена переменная n типа integer, которая используется для ввода масштаба буквы.
- Код устанавливает размер окна в соответствии с введенным масштабом.
- Затем устанавливаются начальные координаты x и y.
- Код входит в цикл, который повторяется до тех пор, пока пользователь не введет некорректное значение масштаба.
- В этом цикле рисуется буква
К
и ожидается нажатие клавиши. - Если нажата клавиша
вправо
, значение переменной x увеличивается на 10. - Если нажата клавиша
влево
, значение переменной x уменьшается на 10. - Если нажата клавиша
вверх
, значение переменной y уменьшается на 10. - Если нажата клавиша
вниз
, значение переменной y увеличивается на 10. - Если нажата клавиша, не соответствующая ни одному из вышеуказанных, то переменная f устанавливается в false.
- Если пользователь вводит некорректное значение масштаба, то цикл продолжается.
- Когда пользователь прекращает ввод, цикл завершается и программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д