Добавил:
korayakov
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабы / ООП.Builder / Лабы / laba3 / laba3..2 / Unit1
.cpp//-------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <math.h>
#include "Unit1.h"
//-------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
bool v;
int h,n,m,w;
double a,s;
TForm1 *Form1;
//-------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{ Form1->KeyPreview = true;
Timer1->Interval=100;
Image1->Canvas->Brush->Color = clWhite;
Image1->Canvas->FillRect(Rect(0, 0, Image1->Width, Image1->Height));
Image1->Canvas->Pen->Color=clBlack;
Image1->Canvas->Pen->Width=5;
Image1->Canvas->MoveTo(Image1->Width,60);
Image1->Canvas->LineTo(Image1->Width,250);
Image1->Canvas->Pen->Color=clRed;
Image1->Canvas->MoveTo(Image1->Width,130);
Image1->Canvas->LineTo(Image1->Width,180);
Ball = new CBall(Image1);
Doska = new CSupport(Image1);
DirMoving=true;
try
{
Ball->Hide();
Doska->Hide();
Ball->MoveToY(Doska->ComputeBallY(Ball->GetX()));
Doska->Rotate(0,0);
}
catch (int d)
{
DirMoving=0;
}
}
//-------------------------------------------------------------------
void __fastcall TForm1::FormDestroy(TObject *Sender)
{ delete Ball;
delete Doska;
}
//-------------------------------------------------------------------
//-------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{ w+=1;
try
{Ball->Hide();
Doska->Hide();
Doska->Rotate(0,0);
Ball->IncX((Doska->Naklon())*w*DirMoving);
Ball->MoveToY(Doska->ComputeBallY(Ball->GetX()));
}
catch (int d)
{Doska->Rotate(0,0);
Timer1->Interval=100;
DirMoving=0;
a=Ball->GetX();
s=Ball->GetY();
if (h<100){
h+=1;
Image1->Canvas->Pen->Color=clBlack;
Image1->Canvas->Pen->Width=5;
Image1->Canvas->MoveTo(Image1->Width,60);
Image1->Canvas->LineTo(Image1->Width,250);
Image1->Canvas->Pen->Color=clRed;
Image1->Canvas->MoveTo(Image1->Width,130);
Image1->Canvas->LineTo(Image1->Width,180);
try{
if (v==false)a=a+60*h*sqrt(2)/2;
if (v==true) a=a-60*h*sqrt(2)/2+600;
s=s-60*h*sqrt(2)/2+10*pow(h,2)/2;
Ball->ComputeBallY12(a,s);
}
catch (int c)
{if (c=1) Label2->Caption="Вы попали!!!";
}
if (a>Image1->Width) {v=true;
a=Image1->Width-10;
}
Ball->Hide12(n,m);
Ball->Move12(a,s);
n=a;
m=s;
}
}
}
//-------------------------------------------------------------
void __fastcall TForm1::Image1MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
//if (abs(Ball->GetX() - X)<10)
//if (!DirMoving)//признак того, что мяч упал
//MouseDn=true;
}
//-----------------------------------------------------------------
void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift,
int X, int Y)
{
//if (MouseDn)
//{
// Ball->Hide();
// Ball->MoveToX(X);
//}
}
//-------------------------------------------------------------------
void __fastcall TForm1::Image1MouseUp(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)
{
// MouseDn=false;
}
//-------------------------------------------------------------------
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{ // if (!DirMoving) return; //
Ball->Hide();
Doska->Hide();
Doska->Rotate(-5,+5);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SpeedButton2Click(TObject *Sender)
{ // if (!DirMoving) return; //
Ball->Hide();
Doska->Hide();
Doska->Rotate(5,-5);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SpeedButton1Click(TObject *Sender)
{ // if (!DirMoving) return; //
Ball->Hide();
Doska->Hide();
Doska->Rotate(-5,+5);
}
//---------------------------------------------------------------------------
Соседние файлы в папке laba3..2