|
|
|||||
Регистрация: Mar 2013
Сообщений: 157
|
Меню как в Angry Birds
Здравствуйте.
Делаю пакет мини-приложений. Хочу реализовать интерфейс игры как например в Angry Birds. Титулка -> Список мини игр -> выбор мини игры (запуск игры) Постараюсь более понятней объяснить. Как реализовать, чтобы игра запускалась в том же окне. Например, вход в настройки, вход в список мини-игр, запуск мини игры из списка, выход в главное меню и т.пр. Я пытался реализовать подобное с помощью кадров, все получалось до момента запуска игры. Т.е. На 1 кадре- титулка, 2-м кадре перечень уровней, 3-й кадр игра. И вот когда переходит к 3-му кадру, то кнопки игры не работают. Проще говоря, меня интересует сама концепция переключения между окнами (если можно так сказать) в приложении. Буду благодарен за пример, чтобы посмотреть как такое реализовывается. |
|
|||||
art_maestro
концепция такая: оставляем только один кадр - первый. Содержимое кадров убираем в мувиклипы-объекты. Таким образом имеем три MovieClip: 1 объект - титулка, второй - перечень уровней, 3-й - игра. Далее добавляем на сцену все три объекта. И по запросу управляем просто их visible. Описанный вариант - тоже далеко не идеальный, но гораздо лучше, чем кадры. Потому что все будет работать.
__________________
while(live()) { hope(); } |
|
|||||
Регистрация: Mar 2013
Сообщений: 157
|
Спасибо за отзыв. Я тоже за это думал, за подмену мувиков, но может существует еще какой-то способ. Использовать visible можно, но мне кажется это не совсем удобно, т.к. уровней будет несколько десятков.
|
|
|||||
вполне удобно. Лучше, конечно, делать следующим образом.
имеем отдельный класс EventDispatcher (назовем его Model), где хранится состояние сцены (id мувика, который должен быть показан в данный момент). Это состояние меняется сеттером, при котором этот класс диспатчит событие СОСТОЯНИЕ_СЦЕНЫ_ИЗМЕНЕНО. Все остальные, кому это интересно, подписываются на это событие и делают соответствующие изменения. В данном случае, это главная сцена, то есть Main класс, который создает сначала экземпляр Model, потом подписывается на событие CHANGE_SCENE_STATE, при срабатывании которого обращается к Model, берет оттуда актуальный идентификатор состояния и отображает в соответсвии с ним нужный мувиклип. Важно понимать, что я не имею в виду "взять все, что есть в кадрах, конвертировать в мувик и кинуть все эти три мувика на сцену первого кадра прямо в программе флеш". Нужно создать отдельную папочку views и создать в ней три (в данном случае) класса - TitleView, LevelsView и GameVeiw, которые либо будут наследовать от MovieClip и создавать в себе мувики из библиотеки, либо будут напрямую наследоваться от них.
__________________
while(live()) { hope(); } |
|
|||||
Регистрация: Mar 2013
Сообщений: 157
|
Я примерно понял. Получается Model- будет являться неким контроллером, через который будет проходить вся работа.
В общем надо пробовать и продумать связку всей этой цепи классов. С ООП имел дело, но не являюсь профессионалом. Спасибо за предложенный вариант. Буду пытаться делать. |
|
|||||
нет, контроллер - это тот, кто контролирует модель и изменяет))) А модель - это просто набор данных. Она ничем не занимается, кроме хранения данных и крика о том, что её кто-то изменил. View же, с вою очередь, отображает все это.
__________________
while(live()) { hope(); } |
|
|||||
Цитата:
В мвц модель содержит данные И всю логику их обработки. Контроллер нужен только для того чтобы обработать запрос от пользователя.
__________________
Дети не должны знать о своих родителях |
|
|||||
Да, спасибо за уточнение. Конечно, вы правы.
__________________
while(live()) { hope(); } |
|
|||||
Регистрация: Mar 2013
Сообщений: 157
|
Я не имел ввиду модель MVC. Через MODEL будут осуществляться все действия и через него будут связаны остальные классы.
|
Часовой пояс GMT +4, время: 22:30. |
|
« Предыдущая тема | Следующая тема » |
|
|