iam_not_a_robot
@iam_not_a_robot

Как изменить угол движения «шарика»?

Демо: https://jsfiddle.net/xLLmzuje/1/

Ситуация: шарик двигается смещением отступов на 1 пиксель, поэтому он двигается строго под углом 45%. Т.е. сейчас так:
b38d0188ea8f418198898ec3528eaaa3.png

Хочется поменять угол падения, пока мне ничего не пришло в голову лучше чем сменить по одной координате сдвиг с 1 на 2 пикселя, т.е. так:
6296af88df5e41a8b2d9f3f4a4eeca38.png

Если угол надо ещё уменьшить, то прибавим ещё пиксель:
5eb85423e6b240469dec2001b17d3bcb.png

Проблемы:
1) Между 1 и 2 картинкой остаётся довольно большая "слепая зона" в которую получается я не могу отправить шар.
2) В этом решении при той же частоте setInterval значительно возрастает скорость шарика, т.к. он начинает преодолевать за 1 интервал расстояние не в 1 а в 4 пикселя например.
Вопрос: есть какие-то методы, функции для более гибкого управления полётом шарика, что бы не так топорно всё было?
  • Вопрос задан
  • 397 просмотров
Решения вопроса 4
Sanasol
@Sanasol Куратор тега JavaScript
нельзя просто так взять и загуглить ошибку
шарик однопиксельный? Поэтому и не выйдет, мельче-то некуда. Увеличить шарик и расчитывать его путь вектороми(victorjs.org/) и будет ок.

пример, не очень хороший, но рабочий по мере возможностей :D
https://github.com/S-anasol/network
game.sanasol.ws/network
Ответ написан
https://jsfiddle.net/5gczy45L/
Вот держи, подредактировал твой код.
В переменной angle записан угол движения
Ответ написан
@mad_god
Слышали ли Вы что-нибудь о дробных значениях? Когда к координаты Х и У умножаются на дробный, а не целый коеффициент? Приведение затем к целому, расположит шарик в нужных координатах.
Ответ написан
@sanex3339
Проведите в Paint'е линию диагональную, вот по пикселям этой линии и должен двигаться шарик, ну а движение реализовывать через вектора (и только через них), как написал Александр Аксентьев.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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