error: a function-definition is not allowed here before '{' token
Ostatnio zmodyfikowano 2014-04-26 22:04
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 : bool CzyKolizja( Poz * A, Poz * 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; } 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 ) |
|
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.. |
|
JategoNwM Temat założony przez niniejszego użytkownika |
» 2014-04-26 18:53:41 #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; }
|
|
SeaMonster131 |
» 2014-04-26 19:37:04 |
|
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 ?? |
|
pekfos |
» 2014-04-26 22:04:11 Gdzie wstawia się definicję funkcji. Bo nie gdziekolwiek. |
|
« 1 » |