![]() |
|
||||||||||
|
|||||
|
Регистрация: Oct 2013
Сообщений: 5
|
Я для тренировки пытаюсь написать управляемую ракету с возможностью поворота, и включения выключения двигателя. в классе модели у меня будет обрабатываться текущие характеристики ракеты, то есть её скорость, ускорение, направление носа ракеты. А в классе отрисовки на каждом кадре нужно пот класса модели получать только текущие показатели x, y, и угол поворота картинки ракеты. Вот вопрос в том, как эти параметры лучше передавать в класс отрисовки? Через публичные переменные класса модели? Но это по-моему как-то не правильно, т.к. тогда теоретически есть возможность изменять эти переменные из любого класса помимо класса модели.
И ещё вопрос собственно по самой MVC. Такая система достаточно логичная и правильная? 1. Класс отрисовки (View) занимается что по каждому ENTER_FRAME отрисовывает текущее положение ракеты, и в принципе больше никак и ни с чем не взаимодействует. 2. Класс управления (Сontrol) будет при нажатии нужных клавиш передавать информацию об этом в класс модели. 3. Класс модели (Model) будет будет в себе иметь так сказать виртуальный космос со своими законами движения и ракету. При сигналах от класса управления о зажатии какой-то клавиши поворачивать ракету или включать/выключать двигатель. При этом, хотя отрисовка вся будет через ENTER_FRAME, в модели я хочу сделать всё через реальное время, и при изменении FPS в принципе ничего меняться тогда не должно. |
|
|||||
|
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
Вы вот эти темы читали раз два ? Там есть ответы почти на все вопросы. Но читать придётся страниц 150.
Добавлено через 16 минут Цитата:
|
|
|||||
|
Мне больше нравится вариант, когда в каком-то контроллере более высокого уровня (не важно, как мы его назовем, на самом деле: контроллер, управляющий класс, геймплейменеджер) тикает счетчик (таймер, энтерфрейм, события с сервера -- не важно), по которому обновляется физический мир.
Это может быть, как и одна моделька вашей ракеты, так и модель всего физического мира (мне так больше нравится), где будет список всех взаимодействующих тел. Вызывается обновление физ мира, внутри обновляются все тела и производятся еще какие-нибудь дополнительные вычисления. А с отображением уже есть варианты. Если объектов немного, то можно при изменении моделек испускать событие, которое будет ловится въюхой этой конкретной модели. И вьюха будет апдейтить себя. Если же объектов много или просто не нравится вариант с событиями в данном случае, то после апдейта физ мира из контроллера игры вызывается апдейт игровой вьюхи, в которой и содержатся отображения моделей физ мира. И там, так же, как и в модели мира, проходим по списку отображений и апдейтим их. А модель должна предоставлять все необходимые методы доступа (пусть даже только для чтения).
__________________
9 из 10 голосов в моей голове сказали наркотикам "НЕТ" Мои ачивки: художник-паразит. |
![]() |
![]() |
Часовой пояс GMT +4, время: 05:33. |
|
|
« Предыдущая тема | Следующая тема » |
|
|