Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

error: a function-definition is not allowed here before '{' token

Ostatnio zmodyfikowano 2014-04-26 22:04
Autor Wiadomość
JategoNwM
Temat założony przez niniejszego użytkownika
error: a function-definition is not allowed here before '{' token
» 2014-04-26 12:49:37
Witam! (znowu) Otóż pisząc sobie kolizje (na podstawie http://cpp0x.pl/forum/temat/?id=4603) w mojej cudownej gierce, a tu mi wyskakuje taki błąd
error: a function-definition is not allowed here before '{' token
W linku który podrzuciłem jest taki kod :
C/C++
bool CzyKolizja( Poz * A, Poz * B )
{
    /* A1 i A3 */ /*   B2  i B4 */
    if( A->x >=( B->x + B->w ) )
         return false;
   
    /*  A2 i A4  */ /* B1 i B3 */
    if(( A->x + A->w ) <= B->x )
         return false;
   
    /* A1 i A2 */ /*  B3  i  B4 */
    if( A->y >=( B->y + B->h ) )
         return false;
   
    /* A3 i  A4 */ /*  B1 i  B2 */
    if(( A->y + A->h ) <= B->y )
         return false;
   
    return true;
}
Mam to ładnie napisane oraz wszystko inne czego mi tam potrzeba. Wszystko się ładnie kompilowało, ale gdy napisałem ten urywek(z danymi jakie tam mam mieć) wyskakuje ten błąd. Rozumiem że coś jest nie tak z tymi nawiasami klamerkowymi. Ale niby czemu?? u innych przecież ładnie działa.
Może ktoś wie dlaczego ten niewyjaśniony dla mnie error się pokazuje?
Jak go naprawić?
(Jeśli chcesz możesz w odpowiedzi napisać historię swojego życia :D )
P-108726
pekfos
» 2014-04-26 14:18:10
Podaj więcej kodu. Gdzie wstawiłeś ten kod, który tu podałeś? Tego dotyczy błąd..
P-108735
JategoNwM
Temat założony przez niniejszego użytkownika
» 2014-04-26 18:53:41
C/C++
#include <SFML/Graphics.hpp>           
#include <SFML/Window.hpp>
#include <cmath>

struct Pozycja
{
    int x, y;
    int w, h;
};

bool Kolizja = false;

int main()
{
    sf::RenderWindow Okno( sf::VideoMode( 600, 400, 32 ), "Gra" );
   
    sf::Clock frametime;
   
    sf::Texture Ludzik;
    Ludzik.loadFromFile( "Ludzik.png" );
    sf::Texture Trawa;
    Trawa.loadFromFile( "Trawa.png" );
   
    Pozycja A;
    A.x = 400.f;
    A.y = 40.f;
    A.w = 100;
    A.h = 150;
   
    Pozycja B;
    B.x = 0;
    B.y = 350;
    B.w = 100;
    B.h = 20;
   
    sf::RectangleShape Postac( sf::Vector2f( A.w, A.h ) );
    Postac.setTexture( & Ludzik );
    Postac.setPosition( A.x, A.y );
   
    sf::RectangleShape Podloze( sf::Vector2f( B.w, B.h ) );
    Podloze.setTexture( & Trawa );
    Podloze.setPosition( B.x, B.y );
   
   
    sf::Vector2f speed( 0.f, 0.f );
   
   
   
   
   
    while( Okno.isOpen() ) {
       
        float dt = frametime.restart().asSeconds();
       
        sf::Event zdarzenie;
        while( Okno.pollEvent( zdarzenie ) )
        {
            if( zdarzenie.type == sf::Event::Closed )
            {
                Okno.close();
            }
           
            bool Kolizja( Pozycja * A, Pozycja * B ) {
               
                if( A->x >=( B->x + B->w ) )
                     return false;
               
                if(( A->x + A->w ) <= B->x )
                     return false;
               
                if( A->y >=( B->y + B->h ) )
                     return false;
               
                if(( A->y + A->h ) <= B->y )
                     return false;
               
                return true;
            }
           
        }
       
       
        if( speed.x > 6.f )
             speed.x -= 3.f;
        else if( speed.x < - 6.f )
             speed.x += 3.f;
        else
             speed.x = 0.f;
       
        if( speed.y > 6.f )
             speed.y -= 3.f;
        else if( speed.y < - 6.f )
             speed.y += 3.f;
        else
             speed.y = 0.f;
       
        if( sf::Keyboard::isKeyPressed( sf::Keyboard::Left ) && sf::Keyboard::isKeyPressed( sf::Keyboard::Right ) )
             speed.x = 0.f;
        else if( sf::Keyboard::isKeyPressed( sf::Keyboard::Left ) )
             speed.x = - 120.f;
        else if( sf::Keyboard::isKeyPressed( sf::Keyboard::Right ) )
             speed.x = 120.f;
        else if( sf::Keyboard::isKeyPressed( sf::Keyboard::Down ) )
             speed.y = 120.f;
       
        Postac.setPosition( Postac.getPosition().x + speed.x * dt, Postac.getPosition().y + speed.y * dt );
       
       
       
       
        Okno.clear( sf::Color::Black );
        Okno.draw( Podloze );
        Okno.draw( Postac );
        Okno.display();
       
       
    }
    return 0;
}
P-108760
SeaMonster131
» 2014-04-26 19:37:04
P-108767
JategoNwM
Temat założony przez niniejszego użytkownika
» 2014-04-26 21:46:37
Tak z ciekwawości, czego mam się dowiedzieć z tego linku ??
P-108777
pekfos
» 2014-04-26 22:04:11
Gdzie wstawia się definicję funkcji. Bo nie gdziekolwiek.
P-108779
« 1 »
  Strona 1 z 1