Problem rozwiązany, jeśli ktoś ma podobny problem to może zerknąć w mój kod:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit5.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TArkanoid *Arkanoid;
int x=-8,y=-8;//ball moving axis
int lBallStart=487,tBallStart=408;
int lPaddleStart=453,tPaddleStart=528;
int howMany=0;
AnsiString Score;
bool collide(TImage *baller,TImage *brick)
{
if(baller->Left >= brick->Left-baller->Width &&
baller->Left <= brick->Left+brick->Width &&
baller->Top >= brick->Top-baller->Height &&
baller->Top <= brick->Top+brick->Height)
{
return true;
}
else return false;
}
//---------------------------------------------------------------------------
__fastcall TArkanoid::TArkanoid(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TArkanoid::BallTimerTimer(TObject *Sender)
{
TImage *images[]={b1,b2,b3,b4,b5,b6,b7,b8,b9,b11,b12};
Score=CurrToStr(howMany);
if(howMany<10)
Score="0"+Score;
if(Score!=Label1->Caption)
Label1->Caption=Score;
ball->Left+=x;
ball->Top +=y;
if(ball->Left-5 <= background->Left)x=-x;
if(ball->Top-5<=background->Top)y=-y;
if(ball->Left+ball->Width+5 >= background->Width) x=-x;
if(ball->Top >= paddle->Top+paddle->Height+15)
{
BallTimer->Enabled=false;
ball->Visible=false;
paddle->Visible=false;
Application->MessageBox("Hou have lost ! :(", "Sorry", NULL);
Button1->Visible=true;
Button1->Caption="Again!";
ball->Left=lBallStart;
ball->Top=tBallStart;
paddle->Left=lPaddleStart;
paddle->Top=tPaddleStart;
goLeft->Enabled=false;
goRight->Enabled=false;
howMany=0;
} else if( ball->Left > paddle->Left-ball->Width/2 && ball->Left < paddle->Left+paddle->Width &&
ball->Top+ball->Height > paddle->Top)
{
if(y>0)
{
y = -y;
}
}
for(int i=0;i<ARRAYSIZE(images);i++)
{
if((collide(ball,images[i]) && images[i]->Visible==true))
{
howMany++;
x=-x;
y=-y;
images[i]->Visible=false;
}
}
if(howMany==12)
{
BallTimer->Enabled=false;
ball->Visible=false;
paddle->Visible=false;
Application->MessageBox("You won! :)", "Well played", NULL);
Button1->Visible=true;
Button1->Caption="Again!";
ball->Left=lBallStart;
ball->Top=tBallStart;
paddle->Left=lPaddleStart;
paddle->Top=tPaddleStart;
goLeft->Enabled=false;
goRight->Enabled=false;
howMany=0;
}
}
//---------------------------------------------------------------------------
void __fastcall TArkanoid::FormClose(TObject *Sender, TCloseAction &Action)
{
BallTimer->Enabled=false;
Button1->Visible=true;
ball->Visible=true;
paddle->Visible=true;
ball->Left=lBallStart;
ball->Top=tBallStart;
paddle->Left=lPaddleStart;
paddle->Top=tPaddleStart;
}
//---------------------------------------------------------------------------
void __fastcall TArkanoid::goLeftTimer(TObject *Sender)
{
if(paddle->Left>10)
paddle->Left-=10;
}
//---------------------------------------------------------------------------
void __fastcall TArkanoid::goRightTimer(TObject *Sender)
{
if(paddle->Left+paddle->Width < background->Left + background->Width-10)
paddle->Left+=10;
}
//---------------------------------------------------------------------------
void __fastcall TArkanoid::FormKeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
if(Key==VK_LEFT)
goLeft->Enabled=true;
else if(Key==VK_RIGHT)
goRight->Enabled=true;
}
//---------------------------------------------------------------------------
void __fastcall TArkanoid::FormKeyUp(TObject *Sender, WORD &Key,
TShiftState Shift)
{
if(Key==VK_LEFT)
goLeft->Enabled=false;
else if(Key==VK_RIGHT)
goRight->Enabled=false;
}
//---------------------------------------------------------------------------
void __fastcall TArkanoid::FormCreate(TObject *Sender)
{
TImage *images[]={b1,b2,b3,b4,b5,b6,b7,b8,b9,b11,b12};
for(int i=0;i<ARRAYSIZE(images);i++)
{
images[i]->Visible=true;
}
ball->Visible=true;
paddle->Visible=true;
x=-x;
y=-y;
}
//---------------------------------------------------------------------------
void __fastcall TArkanoid::Button1Click(TObject *Sender)
{
Arkanoid->FormCreate(Sender);
BallTimer->Enabled=true;
Button1->Visible=false;
}
//--------------------------------------------------------