[SFML]Proste menu do gry - dziwne błędy
Ostatnio zmodyfikowano 2014-08-13 10:08
Parapet Temat założony przez niniejszego użytkownika |
[SFML]Proste menu do gry - dziwne błędy » 2014-08-12 16:26:41 Cześć, po napisaniu klasy menu do gry występuje dziwny błąd tzn. nie podczas kompilacji lecz po uruchomieniu. Treść błędu: Unhandled exception at 0x5ce27735 in Trebuh Adventure.exe: 0xC0000005: Access violation reading location 0x00000003. |
Wywala to Visual Express 2010. Gdy uruchomię *.exe na windows 7 informuje mnie o tym iż aplikacja przestała działać. Kod: #include <SFML/Graphics.hpp> class menu : private sf::Font , public sf::Text { private: Text text[ 3 ]; Font font; public: void changeText( std::string a, std::string b, std::string c, std::string d ) { text[ 0 ].setString( a ); text[ 1 ].setString( b ); text[ 2 ].setString( c ); text[ 3 ].setString( d ); } void changePosition( float x, float y ) { text[ 0 ].setPosition( x, y ); text[ 1 ].setPosition( x, y - 20 ); text[ 2 ].setPosition( x, y - 40 ); text[ 3 ].setPosition( x, y - 60 ); } bool changeFont() { if( !font.loadFromFile( "mariofont.ttf" ) ) return EXIT_FAILURE; int c; for( c = 0; c > 4; c++ ) { text[ c ].setFont( font ); } } void draw( sf::RenderWindow window ) { window.clear( sf::Color::White ); window.display(); window.draw( text[ 0 ] ); window.draw( text[ 1 ] ); window.draw( text[ 2 ] ); window.draw( text[ 3 ] ); } }; int main() { menu gui; sf::RenderWindow okno( sf::VideoMode( 1000, 1000, 32 ), "Menu - TEST GUI" ); gui.changeText( "New game", "Options", "Info", "Exit" ); sf::Event ev; while( okno.isOpen() ) { while( okno.pollEvent( ev ) ) { if( ev.type == sf::Event::Closed ) okno.close(); } } }
Po usunięciu menu gui; oraz wszystkich odpowiedzialnych za to metod etc. w main wszystko działa. Czy ktoś wie o co z tym problemem? Czy to menu ma prawo działać? |
|
Glazus |
» 2014-08-12 17:27:24 1. Gdzie konstruktor? 2. Text text[ 3 ]; - to jest tablica z trzema elementami. Nie czterema. Czyli zawiera takie elementy jak: text[ 0 ], text[ 1 ], text[ 2 ] , nie zawiera natomiast takiego elementu jak text[ 3 ] . |
|
1aam2am1 |
» 2014-08-12 17:28:41 Dlaczego dziedziczysz sf::Text i sf::Font ? |
|
Jacob99 |
» 2014-08-12 17:29:46 for( c = 0; c > 4; c++ ) { text[ c ].setFont( font ); } |
Po co ci nieskończona pętla, która wykracza za tablicę? |
|
Glazus |
» 2014-08-12 17:31:28 @Up - ona nie jest nieskończona. Ona się w ogóle nie wykona. |
|
Jacob99 |
» 2014-08-12 17:33:31 @Glazus Racja. EDIT @Up |
|
1aam2am1 |
» 2014-08-12 17:34:23 Weź kliknij debuguj, po prostu bo masz tyle błędów, że powinieneś wrócić do początków. |
|
Jacob99 |
» 2014-08-12 17:35:40 @1aam2am1 że powinieneś wrócić do początków. |
To ile jest tych początków? |
|
« 1 » 2 3 |