В коде много вот такого, причем когда обрабатывается одна ось - не обязательно должна обрабатыватся другая.
AxisX = ((currentTouchPos.x - startTouchPos.x) / workZoneInPixX);
AxisY = ((currentTouchPos.y - startTouchPos.y) / workZoneInPixY);
Отличаются только оси и чуть чуть название переменных.
Как передать это в метод, чтобы обрабатывать все похожие запросы этим?
Чтобы сократить и избежать дублирования кода
Вижу это как то примерно вот так
float FormatXY(x_or_y)
Axis = ((currentTouchPos.x_or_y - startTouchPos.x_or_y) / workZoneInPixX_or_Y);
return Axis;
Но понятно, что таким образом я просто передам значения x или y, а мне бы передать именно параметр x компонент вектора или y компонент вектора, и как то подставить это в методе.
Чтобы в результате, код
AxisX = FormatXY(X)
Был эквивалентен коду
AxisX = ((currentTouchPos.x - startTouchPos.x) / workZoneInPixX);
А код
AxisX = FormatXY(Y)
Был эквивалентен коду
AxisY = ((currentTouchPos.y - startTouchPos.y) / workZoneInPixY);
Ответ
На беглый взгляд серебренной пули тут не найдешь. Думаю лучше написать две функции, типа CurrentTouchX() и CurrentTouchY() - куда запихать соответствующие выражения. Код сразу станет почище. Не думаю, что стоит городить что-то большее, ну может кто и придумает решение поинтереснее.
Комментариев нет:
Отправить комментарий