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 пикселя например.
Вопрос: есть какие-то методы, функции для более гибкого управления полётом шарика, что бы не так топорно всё было?
  • Вопрос задан
  • 405 просмотров
Решения вопроса 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'е линию диагональную, вот по пикселям этой линии и должен двигаться шарик, ну а движение реализовывать через вектора (и только через них), как написал Александр Аксентьев.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы