движение объекта к заданной точке

я делаю игру на java похожую на браузерную игру agar.io управление шариком происходит с помощью мышки то есть пользователь кликает на карту и шарик должен идти в эту точку я уже примерно понял как это делается вот код:

javax.swing.Timer move = new javax.swing.Timer(100, new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            x += vx / 10;
            y += vy / 10;
        }
    });

в данном случае я использую таймер для движения, я считаю это самым лучшим способом. но есть одна проблема, шарик движется в нужную сторону но как бы далеко или близко не была точка шарик доходит до неё с одинаковым временем мне надо решить эту проблему. могу предложить способ решения с помощью

Math.atan2()
и
Math.sin()/Math.cos()

Ответы (1 шт):

Автор решения: megamozg

к x прибавляем Math.sin(Math.atan2(dx, dy)) * 2 а к y прибавляем Math.cos(Math.atan2(dx, dy)) * 2

→ Ссылка