forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   C++ (http://forum.boolean.name/forumdisplay.php?f=22)
-   -   Время в игре (http://forum.boolean.name/showthread.php?t=9538)

pax 17.10.2009 12:55

Время в игре
 
Подскажите пожалуйста, какими функциями лучше всего регистрировать время, прошедшее с прошлого обновления или визуализации кадра, желательно в тиках или миллисекундах, а еще можно было бы в секундах с плавающей точкой.

Спасибо!

PS: если уже была такая тема, то направьте в нее, я что-то не нашел...

jimon 17.10.2009 21:11

Ответ: Время в игре
 
юзаю QueryPerformanceCounter под windows и gettimeofday под linux'ом, проблем еще не замечал )

pax 19.10.2009 12:06

Ответ: Время в игре
 
Спасибо, А вот говорят что на разных процессорах эта функция может работать по разному. Иногда даже отрицательные значения выдавать... альтернативы есть?

jimon 19.10.2009 13:12

Ответ: Время в игре
 
PAX
BlitzMax в винде использует timeGetTime, но точность ограничивается 1 миллисекундой

тут есть старая но подробная статья http://www.geisswerks.com/ryan/FAQS/timing.html
они тоже остановились на QueryPerformanceCounter, но следует понимать что возращаемое значение привязано к частоте процессора и потому надо частоту тоже снимать раз в 2-4 секунды (сейчас процессоры любят её частенько менять)

скорее всего лучше всего будет использовать комбинированный метод, если QueryPerformanceCounter поплывёт то стабилизировать его с помощью timeGetTime

pax 19.10.2009 13:27

Ответ: Время в игре
 
Может и одномиллисекундной точности хватит...


Часовой пояс GMT +4, время: 02:03.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot