АЛ
Алексей Логинов

Нужна помощь в паскале с управлением!!!!

Мне нужно что-бы при нажатии WASD она двигалась в разные стороны, я не понимаю как это сделать, получилось только в 1 сторону

Program lol;
uses GraphABC, crt;
var eda1,eda,x,i,y:integer; w,d,a,s:char;
const r=5;
begin
setwindowsize (550,350);

eda1:=random(540);
eda:=random(290);
x:=275;
y:=175;

circle(x,y,r);
FloodFill(x,y,clblack);
circle(eda1,eda,r);
FloodFill(eda1,eda,clBlue);

repeat
w:=readkey;
if readkey=w then y:=y-5;
if y=0 then y:=350;
clrscr;
circle(x,y,r);
FloodFill(x,y,clblack);

until x=1000;
end.

RM
Roma Mitrokhin

Я так понял, что идея в том, чтобы юзер нажал на кнопочку, а объект поехал в нужную сторону? И ехал до тех пор, пока юзер не нажмёт другую кнопочку?
В оригинале, это должно выглядеть примерно так:

Создаём объект,
стартуем главный цикл программы
В цикле проверяем, не была-ли нажата нужная нам кнопка
Если нажата, то изменяем направление движения
Пересчитываем координаты
рисуем объект на новом месте
Небольшая задержка.

Альбина Латтарова
Альбина Латтарова

Глупость написал потому что:

w:=readkey;
if readkey=w then y:=y-5;

Действительно, каждое второе нажатие вызывает сдвиг вверх.
Надо приблизительно так:

if keypressed then case readkey of
'w': y:=y-5;
'a': x:=x-5;
's': y:=y+5;
'd': x:=x+5;
end;

Похожие вопросы
Нужна помощь по паскалю!
Нужна помощь в паскале
нужна помощь в паскале люди на помощь
Паскаль... нужна помощь ...
Нужна помощь Турбо Паскаль или Паскаль АВС
Срочно нужна помощь в паскале!!!!
Нужна помощь!!! паскаль
Задачи по паскалю! ! Нужна помощь!
Нужна помощь по паскалю ABC
Паскаль, нужна помощь