Mam taki kodzik:
bool zderzenie( TImage * pilka, TImage * cegla)
{
}
Kompilator wyrzuca błąd w deklaracji składni. Dlaczego tak się dzieje?
Mam taki kodzik:
bool zderzenie( TImage * pilka, TImage * cegla)
{
}
Kompilator wyrzuca błąd w deklaracji składni. Dlaczego tak się dzieje?
A jaki błąd? Szklana Kula na długim weekendzie, nie podpowie dziś.
[C++ Error] Unit1.cpp(14): E2141 Declaration syntax error
Deklaracje funkcji nie mają ciała. Definicja funkcji bool
musi zwrócić tego bool
a.
@Althorion Builder rzuca wtedy ostrzeżenie W8070 i kompilacja leci dalej. Dlatego warto aby pytający wrzucił całą zawartość unita z plikiem *.h
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int x=-8;
int y=8;
int dozbicia=24
bool zderzenie( TImage * pilka, TImage * cegla)
{
if(pilka->Top<=cegla->Top-pilka->Height && pilka->Left>=cegla->Left-pilka->Width &&
pilka->Left<=cegla->Left+cegla->Width && pilka->Top <= cegla->Top+cegla->Height)
{
return true;
}
else return false;
}
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::TimerKulkiTimer(TObject *Sender)
{
Kulka->Left+=x;
Kulka->Top+=y;
//odbijanie od scian
if(Kulka->Left<=Tlo->Left) x = -x;
if(Kulka->Top-5<=Tlo->Top) y= -y;
if(Kulka->Left+Kulka->Width+5 >=Tlo->Width) x= -x;
//skucha xD
if(Kulka->Top>=Paddle->Top+Paddle->Height+15)
{
TimerKulki->Enabled=false;
Kulka->Visible=false;
Button1->Caption="Porażka"
Button1->Visible=true;
}
else if(Kulka->Left > Paddle->Left-Kulka->Width/2 && Kulka->Left < Paddle->Left+Paddle->Width &&
Kulka->Top+Kulka->Height >Paddle->Top)
{
if(y>0) y= -y;
}
if(dozbicia<=0)
{
TimerKulki->Enabled=false;
Kulka->Visible=false;
Button1->Visivle=true;
Button1->Caption="Wygrałeś"
}
//blok 1
if(kolizja(Kulka,Brick1)&&Brick1->Visible=true)
{x = -x; y= -y; Brick1->Visible=false; dozbicia--; }
//blok 2
if(kolizja(Kulka,Brick2)&&Brick2->Visible=true)
{x = -x; y= -y; Brick2->Visible=false; dozbicia--; }
//blok 3
if(kolizja(Kulka,Brick3)&&Brick3->Visible=true)
{x = -x; y= -y; Brick3->Visible=false; dozbicia--; }
//blok 4
if(kolizja(Kulka,Brick4)&&Brick4->Visible=true)
{x = -x; y= -y; Brick4->Visible=false; dozbicia--; }
//blok 5
if(kolizja(Kulka,Brick5)&&Brick5->Visible=true)
{x = -x; y= -y; Brick5->Visible=false; dozbicia--; }
//blok 6
if(kolizja(Kulka,Brick6)&&Brick6->Visible=true)
{x = -x; y= -y; Brick6->Visible=false; dozbicia--; }
//blok 7
if(kolizja(Kulka,Brick7)&&Brick7->Visible=true)
{x = -x; y= -y; Brick7->Visible=false; dozbicia--; }
//blok 8
if(kolizja(Kulka,Brick8)&&Brick8->Visible=true)
{x = -x; y= -y; Brick8->Visible=false; dozbicia--; }
//blok 9
if(kolizja(Kulka,Brick9)&&Brick9->Visible=true)
{x = -x; y= -y; Brick9->Visible=false; dozbicia--; }
//blok 10
if(kolizja(Kulka,Brick10)&&Brick10->Visible=true)
{x = -x; y= -y; Brick10->Visible=false; dozbicia--; }
//blok 11
if(kolizja(Kulka,Brick11)&&Brick11->Visible=true)
{x = -x; y= -y; Brick11->Visible=false; dozbicia--; }
//blok 12
if(kolizja(Kulka,Brick12)&&Brick12->Visible=true)
{x = -x; y= -y; Brick12->Visible=false; dozbicia--; }
//blok 13
if(kolizja(Kulka,Brick13)&&Brick13->Visible=true)
{x = -x; y= -y; Brick13->Visible=false; dozbicia--; }
//blok 14
if(kolizja(Kulka,Brick14)&&Brick14->Visible=true)
{x = -x; y= -y; Brick14->Visible=false; dozbicia--; }
//blok 15
if(kolizja(Kulka,Brick15)&&Brick15->Visible=true)
{x = -x; y= -y; Brick15->Visible=false; dozbicia--; }
//blok 16
if(kolizja(Kulka,Brick16)&&Brick16->Visible=true)
{x = -x; y= -y; Brick16->Visible=false; dozbicia--; }
//blok 17
if(kolizja(Kulka,Brick17)&&Brick17->Visible=true)
{x = -x; y= -y; Brick17->Visible=false; dozbicia--; }
//blok 18
if(kolizja(Kulka,Brick18)&&Brick18->Visible=true)
{x = -x; y= -y; Brick18->Visible=false; dozbicia--; }
//blok 19
if(kolizja(Kulka,Brick19)&&Brick19->Visible=true)
{x = -x; y= -y; Brick19->Visible=false; dozbicia--; }
//blok 20
if(kolizja(Kulka,Brick20)&&Brick20->Visible=true)
{x = -x; y= -y; Brick20->Visible=false; dozbicia--; }
//blok 21
if(kolizja(Kulka,Brick21)&&Brick21->Visible=true)
{x = -x; y= -y; Brick21->Visible=false; dozbicia--; }
//blok 22
if(kolizja(Kulka,Brick22)&&Brick22->Visible=true)
{x = -x; y= -y; Brick22->Visible=false; dozbicia--; }
//blok 23
if(kolizja(Kulka,Brick23)&&Brick23->Visible=true)
{x = -x; y= -y; Brick23->Visible=false; dozbicia--; }
//blok 24
if(kolizja(Kulka,Brick24)&&Brick24->Visible=true)
{x = -x; y= -y; Brick24->Visible=false; dozbicia--; }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::LewoTimer(TObject *Sender)
{
if(Paddle->Left>10)Paddle->Left-=10;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::PrawoTimer(TObject *Sender)
{
if(Paddle->Left+Paddle->Width < Tlo->Width -10)Paddle->Left+=10;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
if(Key==VK_LEFT) Lewo->Enabled=true;
if(Key==VK_RIGHT) Prawo->Enabled=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormKeyUp(TObject *Sender, WORD &Key,
TShiftState Shift)
{
if(Key==VK_LEFT) Lewo->Enabled=false;
if(Key==VK_RIGHT) Prawo->Enabled=false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Kulka->Left=50;
Kulka->Top=50;
Kulka->Visible=true;
x=-8; y=-8;
TimerKulki->Enabled=true;
Button1->Visible=false;
dozbicia=24;
Brick1->Visible=true;
Brick2->Visible=true;
Brick3->Visible=true;
Brick4->Visible=true;
Brick5->Visible=true;
Brick6->Visible=true;
Brick7->Visible=true;
Brick8->Visible=true;
Brick9->Visible=true;
Brick10->Visible=true;
Brick11->Visible=true;
Brick12->Visible=true;
Brick13->Visible=true;
Brick14->Visible=true;
Brick15->Visible=true;
Brick16->Visible=true;
Brick17->Visible=true;
Brick18->Visible=true;
Brick19->Visible=true;
Brick20->Visible=true;
Brick21->Visible=true;
Brick22->Visible=true;
Brick23->Visible=true;
Brick24->Visible=true;
}
//---------------------------------------------------------------------------
Błąd:
[C++ Error] Unit1.cpp(14): E2141 Declaration syntax error
Co prawda nie dałeś całego kodu (gdzie są include'y chociażby vcl.h w pliku *.cpp). Nie mniej jednak masz brak średnika:
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int x=-8;
int y=8;
int dozbicia=24; // <----- TU BRAKUJE SREDNIKA
bool zderzenie( TImage * pilka, TImage * cegla)
Kurde jaki głupi błąd... dzięki
Nie ma za co, ale na Twoim miejscu poprawiłbym styl pisania pgogramów, ponieważ używanie np. zmiennych globalnych to nie jest dobra rzecz. Najpierw wyeliminuj zmienne x,y,dozbicia
a następnie warto zastanowić się jak napisać w ładniejszy sposób metodę TimerKulkiTimer
ponieważ widać tu duplikację kodu.
Dobra postaram się jeszcze raz dzięki za pomoc