потихоньку изучаю js/Есть цель написания 2D игры, и столкнулся с такой проблемкой Мне нужно реализовать так чтобы персонаж (допустим стот по центру поля) стрелял в то место куда бы совершен клик, моей идееё было вычисление угла клика относительно персонажа потом косинусом и синусом сделать движение пули, если правильно умаю подскажите как то реализовать либо это решается совсем по другому?
А нафиг вычислять угол, если сразу можно получить и синус, и косинус?)
Координаты перса: x1, y1 Координаты клика: x2, y2
В треугольнике: Противоположная сторона: let y = (y1 - y2); Соседняя сторона: let x = (x1 - x2); Гипотенуза по теореме Пифагора: let z = (x**2 + y**2) ** 0.5
а если предположим что клик находится ниже персонажа, тоесть полуается что x2 и y2 будут больше чем y1 и x1 и получится что x и y будут отрицательны, пуля так же полетит в нужном направлении?
Elepsis Eclipse
Гений
(64071)
Не знаю, надо "пощупать", посмотреть что будет) И пообрабатывать числа, например через Math.min(), Math.max(), Math.abs()
программирование забавно тем, что одну задачу можно решить 101 способом ) И в больше части зависит от архитектуры приложения, можно вообще через css решить через transition (только в этом случае, скорость пули будет разной в зависимости от расстояния). Можно вычислить длинну пути "L", затем разделить X,Y на L, и в цикле прибавлять X += X/L, Y += Y/L
решается в 2 шага. сначала находишь прямоугольный треугольник, движение будет по гипотенузе. ее длина находится по разнице координат x и y. переводим в параметрическую функцию. вместо y(x) нам нужны x(t) и y(t) где t это время. потому что движение должно быть с постоянной скоростью
Мне нужно реализовать так чтобы персонаж (допустим стот по центру поля) стрелял в то место куда бы совершен клик, моей идееё было вычисление угла клика относительно персонажа потом косинусом и синусом сделать движение пули, если правильно умаю подскажите как то реализовать либо это решается совсем по другому?