Gra typu Arkanoid - błędy w argumentach funkcji

0

Mam taki kodzik:

bool zderzenie( TImage * pilka, TImage * cegla)
{

}

Kompilator wyrzuca błąd w deklaracji składni. Dlaczego tak się dzieje?

0

A jaki błąd? Szklana Kula na długim weekendzie, nie podpowie dziś.

0
[C++ Error] Unit1.cpp(14): E2141 Declaration syntax error
0

Deklaracje funkcji nie mają ciała. Definicja funkcji bool musi zwrócić tego boola.

1

@Althorion Builder rzuca wtedy ostrzeżenie W8070 i kompilacja leci dalej. Dlatego warto aby pytający wrzucił całą zawartość unita z plikiem *.h

0
#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
1

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)
0

Kurde jaki głupi błąd... dzięki

0

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.

0

Dobra postaram się jeszcze raz dzięki za pomoc

1 użytkowników online, w tym zalogowanych: 0, gości: 1