Организовать перемещение буквы вдоль определенной координаты при нажатии клавиш - 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.
- Если пользователь вводит некорректное значение масштаба, то цикл продолжается.
- Когда пользователь прекращает ввод, цикл завершается и программа завершается.