Как сделать, чтобы происходил поворот ствола "пушки" вправо и влево с помощью клавиш управления курсором???
crt,graph;
var
t,k,p,i,p0,p1:integer;
x,y:longint;
dx,dt:real;
Driver,Mode:integer;
Flag:boolean;
s:string;
procedure korabl(dx:integer);
begin
line(dx,130,dx+60,130);
line(dx,130,dx+15,150);
line(dx+15,150,dx+45,150);
line(dx+45,150,dx+60,130);
line(dx+20,130,dx+30,110);
line(dx+30,110,dx+40,130);
end;
procedure Pushka(p:integer);
begin
line(p,479,p+30,450);
line(p+30,450,p+60,479);
end;
procedure Torp(dt,p:integer);
begin
p:=p+29;
rectangle(p,479-dt,p+3,479-(dt+15));
end;
procedure ch(c:char);
begin
if c=#27 then halt(1);
if c=#77 then p:=p+2;
if c=#75 then p:=p-2;
if c='+' then t:=t+10;
if c='-' then t:=t-10;
if c=#13 then
begin
flag:=true;
p1:=p;
end;
if p<0 then p:=0;
if p>639 then p:=639;
if t<50 then t:=50;
if t>500 then t:=500;
setcolor(0);
outtextxy(20,20,s);
setcolor(5);
str(t,s);
outtextxy(20,20,s);
end;
begin
Driver:=VGA;
Mode:=VGAHi;
InitGraph(Driver,Mode,'C:\BP\BGI');
randomize;
settextstyle(4,0,5);
t:=300;
y:=0;
k:=random(64)+64;
x:=0;
p:=320;
p0:=p;
dx:=0;
dt:=0;
s:='300';
outtextxy(20,20,s);
setcolor(5);
Pushka(p);
repeat
setcolor(0);
Korabl( trunc(dx));
dx:=x*k/100;
setcolor(5);
Korabl( trunc(dx));
inc(x);
if Flag then
begin
setcolor(0);
Torp( trunc(dt),p1);
dt:=y*t/100;
setcolor(5);
Torp( trunc(dt),p1);
inc(y);
end;
for i:=1 to 50 do
begin
delay(1);
if keypressed then
ch(readkey);
end;
if p0<>p then
begin
setcolor(0);
Pushka(p0);
setcolor(5);
Pushka(p);
p0:=p;
end;
if 479-(dt+15)<=150 then
begin
if ((p1+29>=dx+15) and (p1+29<=dx+45)) then
begin
for i:=1 to 7 do
begin
setcolor(i);
circle(p1+29,150,i*10);
end;
outtextxy(200,200,'B-----U-----M');
readkey;
halt(1);
end
else
begin
outtextxy(200,200,'M I S S');
readkey;
halt(1);
end;
end;
until trunc(dx)>=580;
readkey;
end.
Код надо заключать в теги !!!. GoodWind
Сообщение отредактировано: GoodWind -