МVC - он для сайтов и социалочек всяких работает. А вот для аркады - уверенности нет (делал раза 2 и очень давно).
Зайдите на gamedev.ru - там популярнее объяснят как конкретно делать игры.
Есть же и другие подходы, например
entity-based system (сам не пробовал)
По сути:
Цитата:
У нас квадратики с вопросительными знаками, удар по которым прибавляет нам количество монеток в счетчике. Я правильно понимаю, что такой квадратик нужно вынести в отдельный класс? Да и счетчик тоже (пусть даже в комплексе с другими счечиками).
Вот. И как им взаимодействовать? После столкновения персонажа с объектом вопросительного знака последний диспатчит событие, которое прослушивается. Вопрос где?
1. В главном классе, родителе всех созданных объектов, тогда там будут слушаться и остальная сотня объектов мира марио (на мой взгляд, весь код игры будет там).
2. В самом себе, на слушателе будет вызываться метод, который должен уметь повлиять на объекты - экземпляры других классов (счетчика, персонажа и т.д.). Может быть это стоит делать через посреднический объект, который будет параметром при создании?
Как это делается грамотными разработчиками?..
|
Определить столкновение с кубиком и показать монетку затруднения не возинкло, а отобразить изменение счета - возникло?
Я бы в такой ситуации взял бы прямо объект "верхняя панель", добавил туда пару методов:

Код AS3:
private var _money:int = 0;
public function get money():int
{
return _money;
}
public function set money(value:int):void
{
_money = value;
_moneyTextField.text = value + "$";
}
Потом передал бы ее тому куску кода, который показывает монетки. Передал бы через конструктор - панель она всю игру существует - можно и через конструктор передать.
И добавил бы к этому коду строчку

Код AS3:
_panel.money += brickKickBonusMoney;
А потом бы уже глядя на _рабочий_ код думал какими проблемами такой подход чреват. Надо ли выделить класс PanelModel или так и таскать вьюшку по контроллеру, т.к. пофиг. Где лучше хранить вычисление бонуса - на кирпиче или в глобальном контроллере и т.д.