движение объекта к заданной точке
я делаю игру на 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