Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 02.11.2013, 16:24
LIGHTHILL вне форума Посмотреть профиль Отправить личное сообщение для LIGHTHILL Найти все сообщения от LIGHTHILL
  № 1  
Ответить с цитированием
LIGHTHILL

Регистрация: Oct 2013
Сообщений: 5
По умолчанию Взаимодействие основных классов MVC

Я для тренировки пытаюсь написать управляемую ракету с возможностью поворота, и включения выключения двигателя. в классе модели у меня будет обрабатываться текущие характеристики ракеты, то есть её скорость, ускорение, направление носа ракеты. А в классе отрисовки на каждом кадре нужно пот класса модели получать только текущие показатели x, y, и угол поворота картинки ракеты. Вот вопрос в том, как эти параметры лучше передавать в класс отрисовки? Через публичные переменные класса модели? Но это по-моему как-то не правильно, т.к. тогда теоретически есть возможность изменять эти переменные из любого класса помимо класса модели.
И ещё вопрос собственно по самой MVC. Такая система достаточно логичная и правильная?
1. Класс отрисовки (View) занимается что по каждому ENTER_FRAME отрисовывает текущее положение ракеты, и в принципе больше никак и ни с чем не взаимодействует.
2. Класс управления (Сontrol) будет при нажатии нужных клавиш передавать информацию об этом в класс модели.
3. Класс модели (Model) будет будет в себе иметь так сказать виртуальный космос со своими законами движения и ракету. При сигналах от класса управления о зажатии какой-то клавиши поворачивать ракету или включать/выключать двигатель. При этом, хотя отрисовка вся будет через ENTER_FRAME, в модели я хочу сделать всё через реальное время, и при изменении FPS в принципе ничего меняться тогда не должно.

Старый 02.11.2013, 16:27
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 2  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Вы вот эти темы читали раз два ? Там есть ответы почти на все вопросы. Но читать придётся страниц 150.

Добавлено через 16 минут
Цитата:
в модели я хочу сделать всё через реальное время, и при изменении FPS
Вы так умеете? Как так сделать?

Старый 02.11.2013, 16:52
ChuwY вне форума Посмотреть профиль Отправить личное сообщение для ChuwY Посетить домашнюю страницу ChuwY Найти все сообщения от ChuwY
  № 3  
Ответить с цитированием
ChuwY
 
Аватар для ChuwY

Регистрация: Nov 2009
Адрес: Тула / Москва
Сообщений: 734
Отправить сообщение для ChuwY с помощью ICQ Отправить сообщение для ChuwY с помощью Skype™
Мне больше нравится вариант, когда в каком-то контроллере более высокого уровня (не важно, как мы его назовем, на самом деле: контроллер, управляющий класс, геймплейменеджер) тикает счетчик (таймер, энтерфрейм, события с сервера -- не важно), по которому обновляется физический мир.
Это может быть, как и одна моделька вашей ракеты, так и модель всего физического мира (мне так больше нравится), где будет список всех взаимодействующих тел. Вызывается обновление физ мира, внутри обновляются все тела и производятся еще какие-нибудь дополнительные вычисления.
А с отображением уже есть варианты.
Если объектов немного, то можно при изменении моделек испускать событие, которое будет ловится въюхой этой конкретной модели. И вьюха будет апдейтить себя.
Если же объектов много или просто не нравится вариант с событиями в данном случае, то после апдейта физ мира из контроллера игры вызывается апдейт игровой вьюхи, в которой и содержатся отображения моделей физ мира. И там, так же, как и в модели мира, проходим по списку отображений и апдейтим их.
А модель должна предоставлять все необходимые методы доступа (пусть даже только для чтения).
__________________
9 из 10 голосов в моей голове сказали наркотикам "НЕТ"
Мои ачивки: художник-паразит.

Создать новую тему Ответ Часовой пояс GMT +4, время: 05:33.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 05:33.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.