Снижение к ступенчатому значению

В настоящее время я занимаюсь разработкой этой ритмической игры на языке lua (поверх движка c ++), и у меня возникают проблемы с сохранением устойчивой позиции для текущей песни.

Положение точки воспроизведения, которую движок дает мне обновления постепенно, поэтому я получаю новую каждые 2, 3 или 4 кадра. Но мне нужно, чтобы спрайты плавно двигались с ритмом и прочим.

Поэтому я просто отслеживаю собственную переменную playhead, которую инициализирую в 0, а затем постоянно добавляю к ней дельта-время. Эта переменная в конечном итоге не синхронизируется с реальной точкой воспроизведения, поэтому каждый раз, когда я получаю новую точку воспроизведения (или «новый шаг»), я исправляю свою переменную, используя среднее значение между этими двумя значениями.

Это, однако, приводит к прерывистому движению.

Как лучше всего перевести мою переменную playhead в ступенчатую?

Вот код, который я исключаю каждый кадр:

— добавить дельту к моей собственной переменной playhead

playhead = playhead + delta_time

— если есть новое значение stepped_playhead, исправьте мою точку воспроизведения

if stepped_playhead ~= last_stepped_playhead then
playhead = (playhead + stepped_playhead) / 2
last_stepped_playhead = stepped_playhead
end

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector