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

[SFML]Proste menu do gry - dziwne błędy

Ostatnio zmodyfikowano 2014-08-13 10:08
Autor Wiadomość
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:
C/C++
#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() ) //main loop
    {
        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ć?
P-115365
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 ]
.
P-115370
1aam2am1
» 2014-08-12 17:28:41
Dlaczego dziedziczysz sf::Text i sf::Font ?
P-115371
Jacob99
» 2014-08-12 17:29:46
C/C++
for( c = 0; c > 4; c++ )
{ text[ c ].setFont( font ); }
Po co ci nieskończona pętla, która wykracza za tablicę?
P-115372
Glazus
» 2014-08-12 17:31:28
@Up - ona nie jest nieskończona. Ona się w ogóle nie wykona.  
P-115373
Jacob99
» 2014-08-12 17:33:31
@Glazus Racja.
EDIT @Up
P-115375
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.
P-115376
Jacob99
» 2014-08-12 17:35:40
@1aam2am1
że powinieneś wrócić do początków.
To ile jest tych początków?
P-115377
« 1 » 2 3
  Strona 1 z 3 Następna strona