История изменений
Исправление deep-purple, (текущая версия) :
Для каждой итерации обновления мира нужно запоминать сколько времени длилось это (предыдущее) обновление. Если у тебя там движущийся объект, то, расстояние, которое он должен пройти, рассчитывается с этим (предыдущим) временем. А отображение состояния (то, что видит пользак) вызывается только когда мир перестроен. Это и есть «просадка фпс» когда мир большой, объектов много, а показываем только после того, как обновили. Вот, сколько раз в секунду ты успел обновить и показать мир, такой фпс твой код и выдаёт.
Ещё можно для мощного железа и маленького мира делать ограничение на максимальный фпс и тем самым вставлять usleep() в цикл обновления и отображения, если комп считает слишком быстро.
Иди спи короче ))
Исходная версия deep-purple, :
Для каждой итерации обновления мира нужно запоминать сколько времени длилось это (предыдущее) обновление. Если у тебя там движущийся объект, то, расстояние, которое он должен пройти, рассчитывается с этим (предыдущим) временем. А отображение состояния (то, что видит пользак) вызывается только когда мир перестроен. Это и есть «просадка фпс» когда мир большой, объектов много, а показываем только после того, как обновили. Вот, сколько раз в секунду ты успел обновить и показать мир, такой фпс твой код и выдаёт.
Иди спи короче ))