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ść
1aam2am1
» 2014-08-12 17:40:01
Jeden początek c++.
Drugi tablice tab[3]. Ma 3 elementy poczynając od 0: 0, 1, 2.
Trzeci początki matematyki w podstawówce dotyczące mniejszy < większy, większy > mniejszy.
Czwarty poco dziedziczysz sf::Text i sf::Font?
Piąty używaj funkcji debuguj!!!
P-115378
Parapet
Temat założony przez niniejszego użytkownika
» 2014-08-12 18:23:17
C/C++
#include <SFML/Graphics.hpp>
class menu
    : private sf::Font
     , public sf::Text
{
private:
   
    Font font;
public:
    Text text[ 4 ];
    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 changeColor( sf::Color color )
    {
        int c;
        for( c = 0; c < 4; c++ )
        { text[ c ].setColor( color ); }
    }
    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();
           
        }
        okno.clear( sf::Color::White );
        okno.draw( gui.text[ 0 ] );
        okno.draw( gui.text[ 1 ] );
        okno.draw( gui.text[ 2 ] );
        okno.draw( gui.text[ 3 ] );
        okno.display();
       
    }
}
Nic się nie wyświetla.
Output po kompilacji:
1>------ Build started: Project: Trebuh Adventure, Configuration: Debug Win32 ------
1>  Skipping... (no relevant changes detected)
1>  code.cpp
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

Co do moich błędów zbyt dużo pisałem w C# ;p
P-115382
1aam2am1
» 2014-08-12 18:33:32
Nie ustawiłeś koloru i dlaczego czyścisz ekran na biało?
P-115383
Jacob99
» 2014-08-12 18:38:55
@1aam2am1
A dlaczego ma czyścić na czarno?
P-115384
Parapet
Temat założony przez niniejszego użytkownika
» 2014-08-12 18:43:44
Okej działa - zamykam.

Edit:
C/C++
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 ] );
}

czemu ta funkcja nie działa?
P-115385
unkn9wn
» 2014-08-12 19:01:18
1. czyścisz
2. wyświetlasz na ekran
3. rysujesz do bufora
P-115386
Parapet
Temat założony przez niniejszego użytkownika
» 2014-08-12 19:23:21
3. rysujesz do bufora
 tzn. ?



C/C++
void changeColor( sf::Color color )
{
    text[ 0 ].setColor( color );
    text[ 1 ].setColor( color );
    text[ 2 ].setColor( color );
    text[ 3 ].setColor( color );
}

Jeszcze ten fragment nie działa, czemu?
P-115388
Glazus
» 2014-08-12 19:32:03
tzn. ?
Spróbuję prościej:

1. Czyścisz scenę.
2. Wyświetlasz scenę.
3. Dodajesz do sceny elementy.

I od początku:

1. Czyścisz,
2. wyświetlasz,
3. dodajesz elementy.

Teraz wiesz?

Co do moich błędów zbyt dużo pisałem w C# ;p
W żaden sposób C# nie tłumaczy błędów które popełniasz.
P-115390
1 « 2 » 3
Poprzednia strona Strona 2 z 3 Następna strona