Просчёт скорости шарика, в зависимости от удалённости от него?

Есть шарик в центре- я мышку отвожу на определённое расстояние от него и если это расстояние большое- он двигается быстрее на координатной сетке. Если курсор на шарике- он стоит. Пример есть в игре agar.io .
Как этот просчёт реализовать?
Спасибо
  • Вопрос задан
  • 156 просмотров
Пригласить эксперта
Ответы на вопрос 1
twobomb
@twobomb
Формула расстояния между двумя точками
ball - шарик, mouse - мышь
dist = Math.sqrt(Math.pow(ball.x - mouse.x, 2) + Math.pow(ball.y - mouse.y, 2));//ball.x,ball.y - центр шарика,если шарик позиционируется с левого верхнего угла то центром будет ball.x + ball.width/2, ball.y + ball.y + ball.height/2
//далее произвольно по своему выставляем зависимость скорости и расстояния например так
speed = 0;
maxSpeed = 50;
if(dist > 10)//Если дистанция менее 10px до шарика то скорость будет равна 0
speed = dist/5;
if(speed > maxSpeed)
speed = maxSpeed;
//кроме того не забудь вычислить угол между шариком и мышкой и двигать шарик так
ball.x += speed * Math.cos(ball.angle);//Угол должен быть в радианах!!
ball.y += speed * Math.sin(ball.angle);//Угол должен быть в радианах!!
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы