Вы в основном ищете инерцию / импульс - основная идея состоит в том, чтобы рассчитать некоторое количество «силы» на основе начального взаимодействия пользователя, использовать его для своего движения, а затем уменьшить его с течением времени.
Есть несколько библиотек, которые вы можете использовать для вдохновения для своей собственной реализации, если вы не хотите просто использовать внешние библиотеки - это прибавилось в поиске: googling: https://chrisbateman.github.io/impetus/