хочу написать простую игру (дано допустим 2 танка 1 управляется пользователем а 2 компьютером ) в ходе написания возник ряд вопросов 1) как сделать чтобы одновременно выполнялось несколько действий допустим я стреляю и пока летит снаряд я хочу переместить свой танк а враг может попытаться увернутся от снаряда.на данном этапе написания когда я стреляю я не могу переместить танк пока не далетит снаряд.2)как установить границы экрана чтобы танк не заезжал за границы и вообще как разграничить экран я пробовал спомощью setviewport но чето ничего не получилось.
вот то что я уже написал набрОсал танки 1им из них можно управлять стрелками и стрелять на пробел выход на esc.танки я нарисовал линиями чтоб легче было работать с координатами
program igra; uses graph,crt; var ch:char; tx,ty,tx2,ty2:integer; d,m,i,x,y,k:integer; procedure vistrel; var vx,vy,i,k:integer; begin vx:=tx; vy:=ty; for i:=1 to 640-(vx+60) do begin setcolor(15); circle(vx+64+i,vy+23,3); setcolor(0); circle(vx+64+i-1,vy+23,3); delay(200); if (vy+23>=ty2) and (vy+23<=ty+48) then circle(213,120,2); end; setcolor(15); end; begin d:=detect; initgraph(d,m,'e:\tp7.1\bgi'); tx:=1; ty:=120; tx2:=610; ty2:=120; {kab} repeat {\\\\\\\\\\\\\\\\\tank22\\\\\\\\\\\\\\\\\\\\\ } {kab} line(tx2,ty2,tx2+23,ty2); line(tx2+23,ty2,tx2+23,ty2+48); line(tx2,ty2+48,tx2+23,ty2+48); line(tx2,ty2,tx2,ty2+48); arc(tx2+11,ty2+6,23,154,13); arc(tx2+11,ty2+42,206,337,13); {pil} line(tx2+10,ty2+9,tx2+10,ty2+39); line(tx2+17,ty2+9,tx2+10,ty2+9); line(tx2+10,ty2+39,tx2+17,ty2+39); {puh} line(tx2,ty2+12,tx2-12,ty2+12); line(tx2,ty2+36,tx2-12,ty2+36); line(tx2-12,ty2+12,tx2-12,ty2+36); {dulo} line(tx2-12,ty2+26,tx2-29,ty2+26); line(tx2-29,ty2+20,tx2-29,ty2+28); line(tx2-12,ty2+22,tx2-29,ty2+22); {gluh} line(tx2-29,ty2+20,tx2-36,ty2+20); line(tx2-29,ty2+28,tx2-36,ty2+28); line(tx2-36,ty2+20,tx2-36,ty2+28); {\\\\\\\\\\\=tank\\\\\\\\\\\\\\\\} line(tx,ty,tx+23,ty); line(tx+23,ty,tx+23,ty+48); line(tx,ty+48,tx+23,ty+48); line(tx,ty,tx,ty+48); arc(tx+11,ty+6,23,154,13); arc(tx+11,ty+42,206,337,13); {pil} line(tx+17,ty+9,tx+17,ty+39); line(tx+10,ty+9,tx+17,ty+9); line(tx+10,ty+39,tx+17,ty+39); {puh} line(tx+23,ty+12,tx+35,ty+12); line(tx+23,ty+36,tx+35,ty+36); line(tx+35,ty+12,tx+35,ty+36); line(tx+35,ty+22,tx+53,ty+22); {dulo} line(tx+35,ty+26,tx+53,ty+26); line(tx+53,ty+20,tx+53,ty+28); {gluh} line(tx+53,ty+20,tx+60,ty+20); line(tx+53,ty+28,tx+60,ty+28); line(tx+60,ty+20,tx+60,ty+28); ch:=readkey; case ch of #72:ty:=ty-5; #75:tx:=tx-5; #77:tx:=tx+5; #80:ty:=ty+5; #32:vistrel; #27:halt; end;{case} cleardevice; until ch=#27; readln; closegraph; end.
объяснити хоть на словах как сделать то о чем я написал.спасибо!