//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <stdio.h>
#include <time.h>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int ms=0, ss=0, mm=0;
int vistrel, vistrelActive=1, levelVistrelov;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::TimerTimer(TObject *Sender)
{
//перемещение картинки ТАЙМЕР
Games->Left=random(411);
Games->Top=random(200)+10;
GamesKill->Left=Games->Left;
GamesKill->Top=Games->Top;
Timer->Enabled=false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::StartClick(TObject *Sender)
{
//старт игры
float fIndex;
//рандом при старте
randomize();
Games->Left=random(300);
Games->Top=random(192)+10;
//..
fIndex=Level->ItemIndex;
GamesKill->Visible=false;
Games->Visible=true;
Games->Enabled=true;
Table->Visible=true;
//таймер на 0
mm=0;
ms=0;
ss=0;
//смена сложности игры
if (fIndex==0)
{
Timer->Interval=130;
PosChange->Interval=1000;
levelVistrelov=7;
}
else
if(fIndex==1)
{
Timer->Interval=120;
PosChange->Interval=700;
levelVistrelov=6;
}
else
if(fIndex==2)
{
Timer->Interval=100;
PosChange->Interval=600;
levelVistrelov=5;
}
else
{
Timer->Interval=90;
PosChange->Interval=500;
levelVistrelov=3;
}
//ShowMessage(fIndex);
PosChange->Enabled=true;
Level->Enabled=false;
Secundomer->Enabled =!(Secundomer->Enabled);
PoleIgry->Cursor=crCross;
//деактивируем кнопку старта
Start->Enabled=false;
vistrelActive=1;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::StopClick(TObject *Sender)
{
//стоп игры
//отключаем таймеры
Timer->Enabled=false;
Secundomer->Enabled=false;
PosChange->Enabled=false;
FireMove->Enabled=false;
Fire->Visible=false;
//таймер на 0
mm=0;
ms=0;
ss=0;
Time->Caption=IntToStr(mm)+":"+IntToStr(ss)+":"+IntToStr(ms);
//невидимость Биллов
Games->Visible=false;
GamesKill->Visible=false;
Level->Enabled=true;
Start->Enabled=true;
PoleIgry->Cursor=crDefault;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::GamesClick(TObject *Sender)
{
//попадание
Games->Visible=false;
GamesKill->Visible=true;
Secundomer->Enabled=false;
PosChange->Enabled=false;
FireMove->Enabled=false;
Fire->Visible=false;
Beep();
ShowMessage("Билли подстрелен!!!\nВаш результат: "+IntToStr(mm)+":"+IntToStr(ss)+":"+IntToStr(ms));
Timer->Enabled=false;
Start->Enabled=true;
Level->Enabled=true;
vistrelActive=1;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::GamesMouseMove(TObject *Sender, TShiftState Shift, int X,
int Y)
{
//прыжок картинки
Timer->Enabled=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SecundomerTimer(TObject *Sender)
{
//секундомер
if(ms<59)
ms++;
else
{
ms=0;
if(ss<59)
ss++;
else
{
ss=0;
mm++;
}
}
Time->Caption=IntToStr(mm)+":"+IntToStr(ss)+":"+IntToStr(ms);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
//уровень сложности по умолчанию
Level->ItemIndex=0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::PosChangeTimer(TObject *Sender)
{
//таймер периодической смены местоположения
Games->Left=random(300);
Games->Top=random(214)+10;
GamesKill->Left=Games->Left;
GamesKill->Top=Games->Top;
//выстрел
if(vistrelActive==1)
{
vistrel=random(levelVistrelov);
if(vistrel==2)
{
vistrelActive=0;
Fire->Top=Games->Top + 20;
Fire->Left=Games->Left + 10;
FireMove->Enabled=true;
Fire->Visible=true;
vistrelActive=0;
}
}//if(vistrelActive==1)
}
//---------------------------------------------------------------------------
//супер аццко быстрый таймер перемещения файрбола и проигрыша
void __fastcall TForm1::FireMoveTimer(TObject *Sender)
{
vistrelActive=0;
Fire->Top+=4;
if(Fire->Top>335&&Fire->Left>=Table->Left&&Fire->Left<=Table->Left+95)
{
//проигрыш
vistrelActive=1;
//останавливаем таймеры
FireMove->Enabled=false;
Timer->Enabled=false;
Secundomer->Enabled=false;
PosChange->Enabled=false;
//таймер на 0
mm=0;
ms=0;
ss=0;
Time->Caption=IntToStr(mm)+":"+IntToStr(ss)+":"+IntToStr(ms);
//курсор по дефолту
PoleIgry->Cursor=crDefault;
//оповещение
Games->Enabled=false;
ShowMessage("Ты проиграл, и теперь Билли захватит мир!");
//скрываем стол и бомбу и билли
Fire->Visible=false;
Table->Visible=false;
Games->Visible=false;
//активируем выбор уровня
Level->Enabled=true;
Start->Enabled=true;
}
if(Fire->Top>355)
{
vistrelActive=1;
FireMove->Enabled=false;
Fire->Visible=false;
}
}
//---------------------------------------------------------------------------
//получение координат мыши
void __fastcall TForm1::PoleIgryMouseMove(TObject *Sender, TShiftState Shift, int X,
int Y)
{
if(X>408)
{
Table->Left=360;
}
if(X<54)
{
Table->Left=6;
}
if(X<408&&X>54)
{
Table->Left=X-48;
}
}
//---------------------------------------------------------------------------