![]() |
Взаимодействие двух классов представления.
Доброго времени суток. Возник такой вопрос... Есть два класса, один из которых представляет героя игры, а именно его отображение:
Код AS3:
Код AS3:
Можно написать весь код в одном классе, тогда проблем не возникнет, но есть же ещё варианты? Наверное нужно читать MVC... |
Цитата:
|
По книжке Мука имею общее представление о MVC, но сейчас запутался в своём же коде.
|
Паттерн Mediator вполне решил бы проблему связывания объектов одного уровня в отношении "многие ко многим".
http://ru.wikipedia.org/wiki/Посредн...роектирования)) |
Медиатор, то оно конечно да.
Но только не могу сказать, что герой и магазин - это объекты одного уровня. Можно чуть больше подробностей? Какие задачи у героя. Что такое герой в данном контексте. Что такое магазин в данном контексте? |
скорее всего должны общаться контроллеры героя и магазина.
|
Игра представляет из себя подобие тамагочи. В классе "герой" находится код для отображения питомца. Добавление частей тела с помощью addChild и и слушатели событий на действия игрока. В классе "интерфейс" находятся продукты, которыми можно покормить героя и элементы интерфейса (окна, панели и т.д.). Здесь также использую addChild для добавления объектов на сцену и некоторые слушатели для реакции на действия.
|
В целом питомец и магазин это совсем разные модули.
Если говорить об мвц то питомец это будет свой контроллер-модель-вью. магазин - своя такая же триада. Но например контроллер магазина может иметь доступ к модели питомца. Мы купили в магазине нечто, оно сразу попало в модель питомца, модель питомца сообщила об этом. Вью питомца услышала это сообщение и перерисовалась. Смешивать два логически разных модуля в один не ок. |
Dukobpa3,
Цитата:
Цитата:
Цитата:
|
У меня основная сложность с классом контроллера. Дальше всё более менее понятно. Например в модели вызывается dispatchEvent, а в вью слушатель принимает этот вызов и рисует отображаемый объект. Что в данном случае должно находится в контроллере?
|
| Часовой пояс GMT +4, время: 16:30. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.