Суббота, 31 Октября 2020 г. 21:24
+ в цитатник
Eretic: Сто лет не занимался игроделом. Сейчас создаю игру по мотивам старой игрушки с советского компьютера. Пишу под DirectX, а если точнее, то под DirectDraw. Вплоть до Windows XP для контроля скорости хватало функции timeGetTime() и timeBeginPeriod() из модуля WINMM.DLL. Однако сейчас столкнулся с тем, что точность функции различается на разных ОС и железе. Если на XP можно задать частоту тиков в 1 мс, то под семеркой это уже не прокатит и частоту можно задать с точностью миллисекунд в пять. Да и под десяткой схожая картина.
Понимаю, что отстал от жизни. В связи с чем возник вопрос. А как сегодня контролируют скорость игры? Мне вот нужно установить фиксированные 40 или 60 fps. Однако, из-за различного поведения timeBeginPeriod() под различными ОС как то нет уверенности, что код отработает одинаково на всех ОС.
Пробовал через синхронизацию с вертикальной разверткой экрана, но оказалось, что это тоже работает не на всех системах. В частности, на ноуте с семеркой почему-то частота раза в два меньше чем на десктопном ПК, хотя в настройках стоят те же 60 герц.
https://forum.sources.ru/index.php?showtopic=420496&view=findpost&p=3841468
Метки:
Программирование графики
-
Запись понравилась
-
0
Процитировали
-
0
Сохранили
-