Precyzyjne (w miarę) odmierzanie czasu. [c++] (Prośba o pomoc)
Ostatnio zmodyfikowano 2011-11-19 16:48
Tymianek Temat założony przez niniejszego użytkownika |
Precyzyjne (w miarę) odmierzanie czasu. [c++] (Prośba o pomoc) » 2011-11-19 15:55:28 Chciałbym zapytac, jak poprawic kod, aby odmierzanie czasu było bardziej precyzyjne, program chodził przez dobre 45 minut, a wskazywał niecałe 38 minut. Oto kod: #include <SFML/System.hpp> #include <iostream> int main() { float czas; int sekunda, minuta, godzina; sekunda = 0; minuta = 0; godzina = 0; sf::Clock zegarek; do { czas = zegarek.GetElapsedTime(); if( czas >= 1 ) { zegarek.Reset(); sekunda++; if( sekunda > 59 ) { minuta++; sekunda = 0; if( minuta > 59 ) { godzina++; minuta = 0; } } std::cout << godzina << " : " << minuta << " : " << sekunda << std::endl; } } while( true ); return 0; }
Podejrzewam, że opóźnienie może byc związane z tą linijką: lecz nie mam pomysłu na coś lepszego. Jak mogę to ulepszyć? |
|
michalp |
» 2011-11-19 16:15:04 Strzeliłeś sobie w stopę. GetElapsedTime zwraca czas od ostatniego resetu w sekundach. Wystarczy, że sekundy zamienisz na godziny, minuty czy co tam chcesz. Uzyskasz wynik na tyle dokładny na ile dokładny jest sf::Clock . |
|
Tymianek Temat założony przez niniejszego użytkownika |
» 2011-11-19 16:48:23 a, no fakt, jednak jak odpaliłem jeszcze raz bez zmian, wskazywało idealnie :P dzięki, już zmieniłem kod.
|
|
« 1 » |