Вы можете решить эту проблему с помощью точных таймеров и векторной математики.
Итак, ради аргумента давайте предположим, что ваш код для рисования может быть вызван в любой момент времени, например С интервалом в 1 секунду или 3 секунды или с интервалом 0,02 секунды.
Скорость движения автомобиля должна составлять 40 пикселей в секунду.
Следовательно, количество пикселей, которое он должен переместить, составляет (TIME_NOW - LAST_FRAME_TIME) * 40 пикселей.