|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
[Pascal] пишу игру, есть вопросы.
есть несколько вопросов:
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 чем неустраивает?
|