Существует два типа анимации - основанная на кадре и основанная на времени, и названия указывают на очевидное.
То, что вы ищете, основано на времени, когда вы вызываете функцию display () (функцию, которая рисуеткадров) вызывается непрерывно.В функции отображения вы устанавливаете глобальную переменную или статическую переменную (зависит от языка) для хранения ВРЕМЕНИ (предпочтительно в микросекундах или миллисекундах), когда было выполнено предыдущее вхождение в этот вызов.Мы сравниваем текущее время и сохраненное время, чтобы найти разницу во времени, dt, и функция должна рисовать на основе dt (прошедшего времени).