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

Precyzyjne (w miarę) odmierzanie czasu. [c++] (Prośba o pomoc)

Ostatnio zmodyfikowano 2011-11-19 16:48
Autor Wiadomość
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:
C/C++
#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ą:
C/C++
if( czas >= 1 )
lecz nie mam pomysłu na coś lepszego.
Jak mogę to ulepszyć?
P-44348
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
.
P-44350
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.
P-44353
« 1 »
  Strona 1 z 1