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
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ć.
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
@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
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
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.