zwracanie czasu na końcu programu

zwracanie czasu na końcu programu
  • Rejestracja: dni
  • Ostatnio: dni
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

mbar254
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 47
0
Kopiuj
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ć.

xeo545x39
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kosmos
  • Postów: 1571
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

byku_guzio
  • Rejestracja: dni
  • Ostatnio: dni
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).

Kopiuj
#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

xeo545x39
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kosmos
  • Postów: 1571
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

byku_guzio
  • Rejestracja: dni
  • Ostatnio: dni
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.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.