zwracanie czasu na końcu programu

0

Witam, piszę małą gierkę i chce by po jej zakończeniu wyświetlił się czas jak długo dana osoba grała. Stąd pytanie czy da się w jakiś prosty sposób zwrócić czas. Przeszukując internet natknąłem się na time.h jakieś sleepy itp. Jest jakis prostszy sposób?
Pozdro

0
GetTickCount()

Może to Ci pomoże w jakiś sposób.
Użyj na początku i na końcu gry. Zapisz te wyniki do 2 róznych zmiennych i na koncu po prostu odejmij od końcowego początkowy. Takie coś przyszło mi do głowy jedynie.

Znalazłem jeszcze coś takiego: http://www.vista.pl/porady/1165_jak_zmierzyc_czas_dzialania_programu_w_c_.html

W necie jest wiele o tym, wystarczy poszukać.

0

Jeżeli robisz to na formach to daj Timer'a i odliczaj nim np. co 10 sekund (Interval = 10000) i potem wyświetl na końcu ten czas, a jeżeli zależy Ci na dokładnym czasie to daj interval na mniej np. 100ms

0

@xeo545x39:
timer z definicji nigdy nie będzie dokładny, i nie nadaje się do odliczania czasu (zdarzenia związane z timerem przechodzą przez kolejkę komunikatów).

@autor:
na początku pobierz aktualny czas (np. funkcja time())
na końcu znowu pobierz czas i oblicz różnicę, ewentualnie podziel przez jakąś jednostkę (żeby nie wypisywać w milisekundach czy czymś innym).

#include <ctime>
//jakiś kod
time_t start = time(NULL);
//jakiś kod
time_t czas_trwania = time(NULL) - start;

jeżeli dobrze pamiętam, to czas powinien wyjść w sekundach

0

Okej, na takich bardziej zaawansowanych rzeczach się jeszcze nie znam, będę wiedział na przyszłość. Swoją drogą zawsze dziwiłem się, że timer ustawiony na 1ms liczy jakoś za wolno :D

0

Minimalna rozdzielczość timera to pewnie jakieś 10ms jak nie więcej. Jeżeli chcesz na bieżąco liczyć czas to w obsłudze timera musisz pobierać aktualny czas i obliczać różnicę, a nie dodawać kolejne wartości rozdzielczości timera. Wystarczy, że coś przywiesi app na chwilę i już po dokładności.

1 użytkowników online, w tym zalogowanych: 0, gości: 1