2013-08-28 5 views
0

Я делаю игру, используя экранный/виртуальный джойстик. Джойстик сам работает нормально.C# - переменная скорость при использовании поворотного джойстика

Что я хочу, когда вы поворачиваете джойстик, пуля запускается в этом направлении. У меня тоже получилось. Теперь проблемы возникают при съемке пули, когда джойстик не находится на краю/радиусе.

Когда джойстик находится на краю/радиусе, пуля перемещается с максимальной скоростью, именно то, что я хочу. Но когда джойстик, скажем, находится где-то между радиусом и центром джойстика, пули двигаются медленнее. Это логично из-за радианов и т. Д.

Но это не то, что я хочу. Что должно случиться, так это то, что пули всегда двигаются с максимальной скоростью.

Кто-нибудь знает, как это можно достичь? Я полностью застрял в этом.

Спасибо!

EDIT: поскольку я до сих пор этого не понимаю, в основном, я хочу, чтобы у меня была точка в радианах внутри круга, и я хочу получить положение этой точки на краю круга.

Итак, скажем, у меня этот Vector2 в радианах.

Vector2(-0.3, 0.3); 

и радиус окружности равен 40.

Длина от центра окружности до точки Vector2 бы Propably быть где-то около

radius = 40 * 0.3 = 12 

Теперь, что бы точка Vector2 если длина равна 40?

Я не могу понять, как это понять. Тригонометрия определенно не моя самая сильная сторона.

+2

Зафиксируйте скорость до максимальной скорости, вы можете найти это по величине линии от центральной точки, которую я могу себе представить, трудно сказать без кода – Sayse

+0

Я понимаю, но я понял, как это сделать , Я добавил некоторую информацию, не могли бы вы снова взглянуть? – DijkeMark

+1

Величина pythagoras - квадратный корень Разница в квадрате x плюс разность квадратов y, извините, трудно печатать на телефоне – Sayse

ответ

0

Я исправил его! Я просто умножился на localPosition джойстика с очень большим числом, так что localPosition woul выпадает за пределы радиуса. Затем я просто использую clampMagnitude, чтобы получить его на краю радиуса. Теперь я получаю правильное поведение.

Смежные вопросы