LINUX.ORG.RU

История изменений

Исправление deep-purple, (текущая версия) :

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

Ещё можно для мощного железа и маленького мира делать ограничение на максимальный фпс и тем самым вставлять usleep() в цикл обновления и отображения, если комп считает слишком быстро.

Иди спи короче ))

Исходная версия deep-purple, :

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

Иди спи короче ))