Страницы

Поиск по вопросам

понедельник, 3 декабря 2018 г.

Передать в метод, нужный компонент вектора.

В коде много вот такого, причем когда обрабатывается одна ось - не обязательно должна обрабатыватся другая.
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() - куда запихать соответствующие выражения. Код сразу станет почище. Не думаю, что стоит городить что-то большее, ну может кто и придумает решение поинтереснее.

Комментариев нет:

Отправить комментарий