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

[SFML 2.0] Problem z pozycją tekstu

Ostatnio zmodyfikowano 2013-04-09 11:07
Autor Wiadomość
KamileN7
Temat założony przez niniejszego użytkownika
[SFML 2.0] Problem z pozycją tekstu
» 2013-04-07 13:37:41
Mam problem z ustawieniem pozycji tekstu. Wyświetlam sobie wartość zmiennej FPS, jednak gdy próbuję ustawić pozycję tekstu program się sypie. Kompilator nic nie wywala, ale podczas uruchamiania aplikacji jest tylko białe okno i program się zawiesza się. Oto kawałek kodu:

C/C++
int main()
{
    sf::RenderWindow Okno( sf::VideoMode( SzerOkna, WysOkna, 32 ), "Arkanoid" );
   
    sf::Clock Stoper, StoperFPS;
   
    float PrzebytyCzas = 0, DlugoscKlatki = 0.01;
    float PrzebytyCzasFPS = 0;
    short Klatki, FPS;
   
    sf::Text WartoscFPS;
   
    while( Okno.isOpen() )
    {
        Klatki++;
        PrzebytyCzas += Stoper.restart().asSeconds();
        PrzebytyCzasFPS += StoperFPS.restart().asSeconds();
       
        if( PrzebytyCzasFPS >= 1 )
        {
            FPS = Klatki;
            PrzebytyCzasFPS = 0;
            Klatki = 0;
        }
       
        sf::Event Zdarzenie;
        if( Okno.pollEvent( Zdarzenie ) )
        {
            if( Zdarzenie.type == sf::Event::Closed )
            {
                Okno.close();
            }
           
            if( Zdarzenie.type == sf::Event::KeyPressed && Zdarzenie.key.code == sf::Keyboard::Escape )
            {
                Okno.close();
            }
        }
       
        if( PrzebytyCzas > DlugoscKlatki ) //Timer
        {
            //Logika
            PrzebytyCzas = 0;
        }
       
        char BuforFPS[ 500 ];
        sprintf( BuforFPS, "FPS: %d", FPS );
        WartoscFPS.setString( BuforFPS );
       
        Okno.clear( sf::Color::Black );
       
        // WartoscFPS.setPosition(100, 100) Jak to dodam to jest ten błąd.
        Okno.draw( WartoscFPS );
       
        Okno.display();
    }
    return 0;
}

Co mam zrobić żeby ustawić pozycje tekstu wyświetlanego tą metodą?
Małe pytanko! Gdzie dać wyświetlanie tego wszystkiego w pętli timera czy poza? Zauważyłem że jest 10 razy więcej FPS'ów jak rysuję wszystko w pętli. Hm, ale czy to nie jest jakieś zakłamanie?
P-80146
Mrovqa
» 2013-04-07 14:22:15
Nie ustawiasz czcionki.
P-80149
KamileN7
Temat założony przez niniejszego użytkownika
» 2013-04-07 19:20:46
Jak załadować tą czcionkę bo jak ją dodałem to też biały ekran, a nawet nie ustawiałem pozycji. Jak to poprawnie zrobić na sf::Text?
P-80175
Mrovqa
» 2013-04-07 21:39:51
W dokumentacji masz wszystko - zanim zadasz pytanie, tam najpierw się kieruj. Tu masz przykładowy kod (eh...):
C/C++
sf::String str( "tekst do wyswietlnie" );
sf::Font font;
font.loadFromFile( "fonts/font_.ttf" );
sf::Text infoTxt( str, font, 20 );
infoTxt.setPosition( 5, 5 );
// ...
window.draw( infoTxt );
Teraz radzę Ci zajrzeć wreszcie do tej dokumentacji i sprawdzić, co robi ten kod.
P-80180
polkom21
» 2013-04-09 11:07:24
Tekst będzie cały czas w jednym i tym samym miejscu więc możesz podać pozycję od razu po zadeklarowaniu poza główną funkcją programu.
P-80254
« 1 »
  Strona 1 z 1