Разработка программной игры "баскетбол"

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



а до}

distance:=sqrt(tmp1*tmp1+tmp2*tmp2){"угла"}

else distance:=radius+10; {корзины}

if (distance<=radius) and (k=0) then

{Если мяч ударяется об "угол" корзины, и мы это

еще не учитывали}

begin

k1:=arctan((190-yp)/

(185-handx+i+0.0000000001));

k1:=(k1-arctan(vy/vx))*2+k1;

vy:=sin(k1)*v; {Пересчитываем}

vx:=cos(k1)*v; {скорость мяча}

k:=1;

end

else k:=0;

y:=findy(handx-i/10,yp,vx,vy);

{Считаем следуюшую координату мяча по оси y}

setcolor(15);{Устанавливаем цвет прера в белый}

if (tmp>135) and (tmp190) then

begin

SetFillStyle(1,0); {Затираем}

Bar(550,20,600,40);{Затираем}

MoveTo(550,30); {надписью}

OutText('goal'); {Пишем 'goal'}

goal:=1; {устанавливаем, что гол был}

end;

if (y-50)

and (handx-i>radius) then

{Если мяч находится на территории площадки}

begin

circle(hand-i*direction,round(y),radius);

showbasket;

{Рисуем баскетбольный щит с корзиной}

showplayer(x,angle);{Рисуем игрока}

yp:=y;

delay(delay1); {Задержка}

end

else break; {Выходим из цикла полета мяча}

end;

if (goal=0) then {Если гола не было}

begin

SetFillStyle(1,0); {Затираем}

Bar(550,20,600,40); {место с}

MoveTo(550,30); {надписью}

OutText('miss'); {Пишем 'miss'}

end;

setcolor(0); {Устанавливаем цвет прера в черный}

circle(handx-i,round(yp),radius);{Закрашиваем мяч}

setcolor(15);

{Устанавливаем цвет прера в черный белый}

circle(handx,handy,radius); {Рисуем мяч};

grdriver:=detect; {Инициализация}

initgraph(grdriver,grmode,' ');{графического}

errcode:=graphresult; {режима}

delay1:=200;

{Установка задержки(если прграмма работает медленно

(слабый компьютер) ее нужно уменьшить)}

if errcode=grok then {если нет ошибки в графике}

begin

radius:=14; {Начальная}

xprev:=400; {установка}

x:=xprev; {переменных}

angleprev:=pi/18; {объявленных}

angle:=angleprev; {в}

anglestep:=pi/72; {начале}

step:=5; {программы}

showbasket;

{Рисуем баскетбольный щит с корзиной}

showplayer(xprev,angleprev);{Рисуем игрока}

circle(handx,handy,radius); {Рисуем мяч}

while (key<>#27) do {Пока не была нажата ESC}

begin

key:=readkey;{Считываем нажатую клавишу}

change:=1;

if (key='a') and (xprev>300) then

x:=xprev-step

{Движение игрока влево}

else if (key='d') and (xprev<600) then

x:=xprev+step

{Движение игрока вправо}

else if (key='s') then

begin

if (angle<0.5) then

angle:=angleprev+anglestep

{Опускаем руку}

end

else if (key='w') then

begin

if (angle>-0.5)

then

angle:=angleprev-

anglestep

{Опускаем руку}

end

else if (key=' ') then

begin

shot(x,angle);

{Осуществляем бросок}

change:=0;

end

else change:=0;

if (change=1) then

{Если игрок двинулся или повернул руку}

begin

SetColor(0);

{Устанавливаем цвет прера в черный}

showplayer(xprev,angleprev);

{Закрашиваем игрока}

circle(handx,handy,radius); {Закрашиваем мяч}

setcolor(15);

{Устанавливаем цвет прера в белый}

showplayer(x,angle);{Рисуем игрока}

circle(handx,handy,radius);

{Рисуем Мяч}

xprev:=x;

angleprev:=angle;

end

end;

closegraph;{Выключаем графический пежим}

end

else writeln('Graphics error:',

grapherrormsg(errcode));

{Пишем сооющение об ошибке инициализации графики}.