![]() |
|
||||||||||
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Цитата:
"Засунуть всю логику" было бы рассчитать полет пули и ее попадание в противника прямо во Вью (где есть все координаты), а для Модели посылать только событие "враг получил пулю, проверьте как он там". "Вытащить всю логику" означает каждый пиксель полета пули брать из Модели, и каждый кадр предсмертных судорог, и каждый кадр процесса перезарядки (ну, а что еще такое "таймер в модели", по-вашему?) Вам то не кажется, что Вы пихаете Вью в Модель? Весь вопрос стоит на том, что именно считать данными. Есть ли какие-то данные в том, что юзер нажал курок во время перезарядки? Зачем это Модели? Это вопрос чисто интерфейса игры с пользователем. Зачем Модели подтверждать выстрел? Вью не справится с тем, стрелять или нет, на основании данных (из Модели!) о количестве патронов в обойме и текущего состояния анимации дробовика? (готов к выстрелу/не готов)? Зачем конкретно Модели знать, готов к выстрелу дробовик или нет? На какие данные/логику это может повлиять, кроме как "реагировать на событие ЮзерНажал, или нет, если вдруг это событие придет"? Так вот придет ли событие, это вопрос интерфейса, то есть Вью. Добавлено через 35 минут Цитата:
Контроллер является ключевой фигурой в парадигме MVC. Вот только не потому, что является мозгом приложения. А потому, что именно он обеспечивает суть концепции MVC — разделение данных и отображения. Не будь контроллера, мы бы писали модель для конкретной вью и вью для конкретной модели. Только и всего. Контроллер призван собрать в себе всю эту конкретику. Он знает язык Вью и знает язык Модели. И "язык" здесь не просто как перевести слово. Он переводит СМЫСЛ, потому что смыслы для Вью и для Модели разные. Контроллер должен понимать смысл событий Вью для Модели. Иначе все вью будут вынуждены изначально писаться для этой конкретной модели, а модель — понимать, что ей делать при "юзер нажал клавишу Р".
__________________
Reality.getBounds(this); |
![]() |
Часовой пояс GMT +4, время: 01:51. |
|
|
« Предыдущая тема | Следующая тема » |
|
|