[SFML 2.0] Problem z pozycją tekstu
Ostatnio zmodyfikowano 2013-04-09 11:07
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:
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 ) { PrzebytyCzas = 0; } char BuforFPS[ 500 ]; sprintf( BuforFPS, "FPS: %d", FPS ); WartoscFPS.setString( BuforFPS ); Okno.clear( sf::Color::Black ); 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? |
|
Mrovqa |
» 2013-04-07 14:22:15 Nie ustawiasz czcionki. |
|
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? |
|
Mrovqa |
» 2013-04-07 21:39:51 W dokumentacji masz wszystko - zanim zadasz pytanie, tam najpierw się kieruj. Tu masz przykładowy kod (eh...): 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. |
|
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. |
|
« 1 » |