Задать вопрос

Как заставить квадрат поворачиваться в сторону движения мыши?

Есть квадрат, который летит за курсором. Я пытаюсь сделать так, чтобы он поворачивался в сторону движения курсора. Высчитываю угол движения и задаю квадрату rotate с этим углом.
Если быстро двигать мышкой то вполне все работает, но если двигать медленно квадрат быстро вертится в стороны.
Я окрасил верхний бордер квадрата в красный, чтобы было видно, куда он повернут.
Как можно это решить?
Мне это нужно, чтобы приблизиться к решению этой проблемы: https://qna.habr.com/q/1053832
Вместо квадрата потом будет круг, который я буду сжимать через scaleX при движении, таким образом создам иллюзию эластичности круга.
Здесь можете поиграться: https://codepen.io/h3ckphy/pen/yLXWYwV
Лучше расширьте экран и подвигайте мышкой, чтобы все увидеть.
  • Вопрос задан
  • 89 просмотров
Подписаться 1 Сложный Комментировать
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
CodePen
Имхо стоит таки сделать, чтобы prev догонял cur, не сразу достигая его. Поэтому считать время с предыдущего кадра и изменять координаты и угол пропорционально прошедшему времени.

Тут вам ещё стоит повозится с углом, чтобы он в нужную сторону поворачивался к ближайшему: от 340° к 5° ближе через 360°, чем через 0°

Чтобы не было дерганий у центра, можно там объявить «мёртвую зону» какого-то радиуса, менее которого не реагировать углом.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
Wanted. Москва
от 250 000 до 400 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽
22 янв. 2025, в 19:19
2300 руб./в час
22 янв. 2025, в 18:00
15000 руб./за проект
22 янв. 2025, в 17:57
2000 руб./в час