Я делаю игру, используя экранный/виртуальный джойстик. Джойстик сам работает нормально.C# - переменная скорость при использовании поворотного джойстика
Что я хочу, когда вы поворачиваете джойстик, пуля запускается в этом направлении. У меня тоже получилось. Теперь проблемы возникают при съемке пули, когда джойстик не находится на краю/радиусе.
Когда джойстик находится на краю/радиусе, пуля перемещается с максимальной скоростью, именно то, что я хочу. Но когда джойстик, скажем, находится где-то между радиусом и центром джойстика, пули двигаются медленнее. Это логично из-за радианов и т. Д.
Но это не то, что я хочу. Что должно случиться, так это то, что пули всегда двигаются с максимальной скоростью.
Кто-нибудь знает, как это можно достичь? Я полностью застрял в этом.
Спасибо!
EDIT: поскольку я до сих пор этого не понимаю, в основном, я хочу, чтобы у меня была точка в радианах внутри круга, и я хочу получить положение этой точки на краю круга.
Итак, скажем, у меня этот Vector2 в радианах.
Vector2(-0.3, 0.3);
и радиус окружности равен 40.
Длина от центра окружности до точки Vector2 бы Propably быть где-то около
radius = 40 * 0.3 = 12
Теперь, что бы точка Vector2 если длина равна 40?
Я не могу понять, как это понять. Тригонометрия определенно не моя самая сильная сторона.
Зафиксируйте скорость до максимальной скорости, вы можете найти это по величине линии от центральной точки, которую я могу себе представить, трудно сказать без кода – Sayse
Я понимаю, но я понял, как это сделать , Я добавил некоторую информацию, не могли бы вы снова взглянуть? – DijkeMark
Величина pythagoras - квадратный корень Разница в квадрате x плюс разность квадратов y, извините, трудно печатать на телефоне – Sayse