2
GAIKER:
Цитата:
|
Если контроллер это помнит, то зачем тогда модель?
|
Может быть вы и правы. Но сложно сделать контроллер вообще без состоняния не загадив модель.
Цитата:
|
Если контроллер меняет вьюшку, то зачем тогда модель?
|
Например морковка должна подсвечиватся, если ее можно сорвать и не подсвечиваться, если нельзя - следить за действиями вроде не обязанность модели.
Или более сложный пример - выбираем место для посадки, таская морковку по всему полю - нам что, при этом модель менять? А если еще какая сложная подсветка ячеек при этом понадобится?
Цитата:
Нужен механизм для смены контроллеров всех моделек при смене глобального состояния
Моя идея: не менять контроллер при смене состояния, вместо этого менять его поведение.
|
Похоже, так и придется делать - завязывать "контейнер" для контроллера на модельку морковки, а подменять уже внутренности этого контейнера - так хоть не загонишься с переписыванием ссылок.
Паттерн "состояние" рулит - это всё понятно.
Но смущает 2 вещи:
как хранить связь модель-контроллер? (например для карты контроллеры свои, для како-го нибудь магазина - свои, т.е. для каждой подсистемы связь своя)
влепить ссылку в модель? - как-то не очень.
Небольшой оффтоп по поводу связи вьюха - модель: Как по модели найти вьюху?
Я тупо завожу хеш-таблицу в главной вьюхе, содержащей морковки и получаю так: _viewByModel[model].
Вьюха хранит ссылку на модель напрямую. Это нормально, или кто-то нашёл более вменяемый способ?
Цитата:
|
Можно сделать один контроллер для всех морковок, который хранит их модели в массиве, и тоже реализован по описанной выше схеме. Я бы сделал именно так.
|
Это если мы выращиваем только морковки, а есть еще редиски, свеклы и животные - для них в этом общем контроллере веточки if-ов растут как на дрожжах.
2
ShockWave512
Цитата:
|
ох не для всех игр подходит MVC, совсем не для всех
|
Если он не подходит для такой простой и типичной ситуации - на что он вообще годится?
Цитата:
|
как только много разветвленной логики и куча состояний/логики/анимации, нужны какие нить через-строчные конвейеры, на пару-тройку уровней данных каждый
|
Что-то тяжко понимаю как это должно работать, ссылочка есть на описание этого метода или пример кода какой-нть?
2
Psycho Tiger
Цитата:
@expl, я не очень понял в чем загвоздка, но могу порекомендовать бабблинг. =)
Смысл в том, что по клику на однотипные объекты рассылается бабблинг событие. Контроллер ловит это событие и может стянуть модель у вьюшки, по event.target.
|
И баблинг у меня есть и модель вьюшка контроллеру передает - беда в том что контроллер один на все типы моделей