Разработка программной игры "баскетбол"
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
а до}
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));
{Пишем сооющение об ошибке инициализации графики}.