Я кодирую игру-клон гитарного героя. Он работает хорошо, но на быстрых компьютерах (при высоких частотах кадров) анимация не всегда плавная. Я имею в виду, что иногда заметки прокручиваются с шишками. Я узнал, что проблема, вероятно, связана с моим циклом игры, который не закрывает fps (поскольку я обновляю время прохождения кадра, я думал, что это не обязательно). Когда происходит падение, скажем, от 140 кадров в секунду до 60, эти удары заметны.Написание лучшего игрового цикла
Я взглянул на этот сайт: http://www.koonsolo.com/news/dewitters-gameloop/, и я пытаюсь реализовать подход «FPS зависит от постоянной скорости игры», чтобы проверить, исправлена ли проблема.
Проблема в том, что обновление и рендеринг моей игры устойчивы на скорости 60 кадров в секунду, а звуковой сигнал, похоже, называется намного больше. Я использую Audiere for Sound и SDL для таймера/ввода.
Я думал, что SDL_Delay приостановит игру, пока не закончится, но это не похоже. Есть что-то, что мне не хватает? Является ли SDL не реальной личностью для времени?
Вам может быть интересно, как Unity3D справляется с этой проблемой, посмотрите http://unity3d.com/support/documentation/ScriptReference/Time-deltaTime.html – OneThreeSeven