Показать сообщение отдельно
Старый 21.02.2013, 10:30   #20
EvilOkta
Знающий
 
Аватар для EvilOkta
 
Регистрация: 31.07.2008
Сообщений: 321
Написано 108 полезных сообщений
(для 229 пользователей)
Ответ: Передача переменной в метод

наверное слишком сумбурно объяснил, задача так поставлена потому что юнитом через этот скрипт планируется управлять как игроком так и ИИ.
Вообще при малом количестве параметров действительно подойдет switch/case.
Сейчас попробую поподробнее объяснить, возможно и правда проблема в том что я слишком все осложняю.

Игра пошаговая (типа incubation) юнит передвигается по квадратному полю с помощью одного и того же метода. Команда на направление движения устанавливает центр привязки юнита, вокруг которого он "перекатывается" на соседнее поле.
Есть две переменные отвечающие за его текущий поворот, имеется ввиду не физический поворот, а некоторые значения которые меняются при перемещении (это краеугольная концепция игры). При перемещении в одну сторону меняется одна переменная, в другую вторая и т.п.
Задача при инициализации движения передавать в метод именно ту переменную которую требуется обработать и вернуть ее измененное значение. При расширении скрипта (и написании ИИ) возникнет необходимость передавать и другие параметры для изменения. Так как игра тактического характера то при разном расположении и повороте юнита он будет иметь разные тактические параметры - это я и хотел реализовать в обработчике движения.
Если управляет игрок то довольно просто - он мышкой прокладывает маршрут по полю, анализатор запаковывает маршрут в команду, понятную методу перемещения и метод начинает перемещать юнит по маршруту, попутно изменяя его текущие параметры.
Если юнитом управляет ИИ, то до прокладки маршрута в действие вступате блок логики, анализирующий текущую ситуацию на поле, параметры и расположение юнитов и т.п. (тут кстати в этом блоке мне тоже бы пригодилась методика передачи/приема переменных или аналоги), и этот блок логики по результатам анализа так же формирует маршрут и отдает его методу перемещения.

Еще один момент, помимо перемещения юнита метод так же управляет его активными действиями, т.е. например "атака", "защита" и т.п. (образно говорю), поэтому и стоит задача унификация метода и отделение его от метода прокладки маршрута/действий.

Кстати насчет интерфейсов, немного не понял идею, это как?
__________________
Области Хаоса - мой новый Youtube проект
(Offline)
 
Ответить с цитированием