[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 |