![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
есть несколько вопросов:
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.плюс интересны какиенибудь идеи интересные, ( я собирался что то вроде лабиринта сделать) |
|
#2
|
|||
|
|||
|
чтобы не жать энтер например такое
var c:char; ... begin repeat c:=readkey; case c of '1':begin inc(r); end; '2':begin inc(r); end; until ...; это будет при нажатии 1 или 2 увеличивать переменную r |
|
#3
|
|||
|
|||
|
Думаю в наше время писать игры на паскале не перспективно. А Delphi чем неустраивает?
|