Добавил:
korayakov
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <math.h>
#include "ball1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
CBall::CBall(TImage* _Img)
{
Img=_Img;
v=0;
}
void CBall::Hide()
{
Img->Canvas->Pen->Color=clWhite;
Img->Canvas->Brush->Color=clWhite;
Img->Canvas->Ellipse(x-10,y-10,x+10,y+10);
}
void CBall::MoveToAngle(float Dang)
{
float xc=(Img->Width)/2;
float yc=(Img->Height)/2;
angle+=Dang+v;
x=xc+40.0*cos(angle);
y=yc-40.0*sin(angle);
v+=0.1;
Img->Canvas->Pen->Color=clBlue;
Img->Canvas->Brush->Color=clBlue;
Img->Canvas->Ellipse(x-10,y-10,x+10,y+10);
if (angle>=angle0+(2.0*pi-pi/2.0)) throw excp();
}
void CBall::Fly(int dx,int dy)
{
x+=v*cos(pi/2-angle0-pi/4)*t *20;
y+=(v*sin(pi/2-angle0-pi/4)*t+9.8*t*t/2)/10;
Img->Canvas->Pen->Color=clBlue;
Img->Canvas->Brush->Color=clBlue;
Img->Canvas->Ellipse(x-10,y-10,x+10,y+10);
if ( (x>=Img->Width-30) && (y>Img->Height/2+30)
&& (y<Img->Height/2+90))
{
throw excp1();
}
}
CSupport::CSupport(TImage* _Img)
{
Img=_Img;
xc=(Img->Width)/2;
yc=(Img->Height)/2;
angle=pi/4;
RotateToAngle(0);
}
void CSupport::RotateToAngle(float Dang)
{
angle+=Dang;
Img->Canvas->Pen->Width=1;
Img->Canvas->Pen->Color=clRed;
Img->Canvas->Brush->Color=clRed;
Img->Canvas->Arc(xc-R,yc-R, xc+R, yc+R,
xc+R*cos(angle),
yc-R*sin(angle),
xc+R*cos(angle-pi/4),
yc-R*sin(angle-pi/4));
}
void CSupport::Hide()
{
Img->Canvas->Pen->Width=3;
Img->Canvas->Pen->Color=clWhite;
Img->Canvas->Brush->Color=clWhite;
Img->Canvas->Ellipse(xc-R, yc-R, xc+R, yc+R);
}