Timer w C++

Korzystam z C++ (biblioteka Oslib)

w jaki mniej wiecej sposób zrobić stoper odliczający tylko sekundy :?:

Tzn. bez minut, godzin tylko żeby same sekundy odliczać

albo robisz osobny wątek na timer z odświerzaniem co 1000ms albo robisz (wykorzystujesz co jest) np delay(1000) albo _delay(1000) albo delay_ms(1000) - za dużo się języków zna żeby pamiętać wszystko dokładnie :smiley:

czyli co :?:

czyli to mi będzie się odświeżało co ile ^^?

co 1000 ms (czyli 1 sekundę)

Czyli jak proponujesz to zrobić żeby mi naliczało :o Mówiąc szczerze nie kumam :wink:

delay “zatrzymuje” wątek na co najmniej tyle ile jest wskazane w parametrze(w rzeczywistości jest to trochę więcej).

Robisz pętle która za każdym przejściem dodaje 1 do licznika. W pętli dajesz też delay(1000) który zatrzymuje Ci ja na sekundę. Wychodzi zatem że co sekundę dodaje 1 do licznika = liczy sekundy. Jednak nie jest to precyzyjne bo dochodzi (minimalne) opóźnienie spowodowane wykonywaniem kodu. Ale jest to raczej niezauważalne.

Ale ja nie chcę zatrzymywać kodu ponieważ moja gierka jest na czas. Jak zrobiłbym jak mówicie to to będzie zatrzymywało cały program? :?:

Będzie zatrzymywało tylko jeden wątek, nie cały program. Jeśli nie chcesz zatrzymywać go w ogóle to użyj funkcji mierzących czas(np. time/clock z ctime).

Można użyć również:

Sleep(1000);

z biblioteki “windows.h”. Odliczanie czasu można zrobić używając “ctime” za pomocą funkcji:

difftime(dwie zmienne z czasem);

Wychodzi bardzo ładny i mało zasobożerny sekundnik…