1. как сделать реакцию на нажатие клавиши? (тоесть не нажимать enter каждий раз после ввода "w")
2. посмотрите что у меня со скоростью, немогу придумать как чтоб скажем x овая скорасть при нажатии "a" если есть сначала уменьшалась, а потом увеличивалась?
вот код, так понятней будет в чем заковыка:
Код: Выделить всё
Program graph18;
uses graph,crt;
var gd,gm,b,c,vv,f,ly,lx,y,x:integer;
key:string;
ny,nx:byte;
begin
clrscr;
writeln('ўлЄ«озЁ puto switcher!');
writeln('гЇа ў«Ґ*ЁҐ - WASD');
writeln('ўл©вЁ - g');
readln;
gd:=detect;
initgraph(gd,gm,'E:\TP\UNITS');
begin
x:=100;
y:=100;
ly:=y;
lx:=x;
repeat
c:=c+1;
readln(key);
setcolor(1);
begin
if key='w' then
begin
ly:=y;
ny:=ny+5;
y:=y-ny;
clrscr;
setbkcolor(7);
for vv:=y to ly do
begin
setcolor(7);
circle(x,ly,2);
circle(x,ly,1);
delay(0);
setcolor(1);
ly:=ly-1;
circle(x,ly,2);
circle(x,ly,1);
end;
end;
if key='s' then
begin
ly:=y;
ny:=ny+5;
y:=y+ny;
clrscr;
for vv:=ly to y do
begin
setcolor(7);
circle(x,ly,2);
circle(x,ly,1);
delay(0);
setcolor(1);
ly:=ly+1;
circle(x,ly,2);
circle(x,ly,1);
end;
end;
if key='a' then
begin
lx:=x;
nx:=nx+5;
x:=x-nx;
clrscr;
for vv:=x to lx do
begin
setcolor(7);
circle(lx,y,2);
circle(lx,y,1);
delay(0);
setcolor(1);
lx:=lx-1;
circle(lx,y,2);
circle(lx,y,1);
end;
end;
if key='d' then
begin
lx:=x;
nx:=nx+5;
x:=x+nx;
clrscr;
for vv:=lx to x do
begin
setcolor(7);
circle(lx,y,2);
circle(lx,y,1);
delay(0);
setcolor(1);
lx:=lx+1;
circle(lx,y,2);
circle(lx,y,1);
end;
end;
end;
until (key='g'){ or
((x in[ 200..250 ])and(y in [200..250])) }
end;
readln;
closegraph;
{
if ((x in[ 200..250 ])and(y in [200..250])) then
writeln('Є®*Ґж');
readln; }
end.