![]() |
Меню как в Angry Birds
Здравствуйте.
Делаю пакет мини-приложений. Хочу реализовать интерфейс игры как например в Angry Birds. Титулка -> Список мини игр -> выбор мини игры (запуск игры) Постараюсь более понятней объяснить. Как реализовать, чтобы игра запускалась в том же окне. Например, вход в настройки, вход в список мини-игр, запуск мини игры из списка, выход в главное меню и т.пр. Я пытался реализовать подобное с помощью кадров, все получалось до момента запуска игры. Т.е. На 1 кадре- титулка, 2-м кадре перечень уровней, 3-й кадр игра. И вот когда переходит к 3-му кадру, то кнопки игры не работают. Проще говоря, меня интересует сама концепция переключения между окнами (если можно так сказать) в приложении. Буду благодарен за пример, чтобы посмотреть как такое реализовывается. |
art_maestro
концепция такая: оставляем только один кадр - первый. Содержимое кадров убираем в мувиклипы-объекты. Таким образом имеем три MovieClip: 1 объект - титулка, второй - перечень уровней, 3-й - игра. Далее добавляем на сцену все три объекта. И по запросу управляем просто их visible. Описанный вариант - тоже далеко не идеальный, но гораздо лучше, чем кадры. Потому что все будет работать. |
Спасибо за отзыв. Я тоже за это думал, за подмену мувиков, но может существует еще какой-то способ. Использовать visible можно, но мне кажется это не совсем удобно, т.к. уровней будет несколько десятков.
|
вполне удобно. Лучше, конечно, делать следующим образом.
имеем отдельный класс EventDispatcher (назовем его Model), где хранится состояние сцены (id мувика, который должен быть показан в данный момент). Это состояние меняется сеттером, при котором этот класс диспатчит событие СОСТОЯНИЕ_СЦЕНЫ_ИЗМЕНЕНО. Все остальные, кому это интересно, подписываются на это событие и делают соответствующие изменения. В данном случае, это главная сцена, то есть Main класс, который создает сначала экземпляр Model, потом подписывается на событие CHANGE_SCENE_STATE, при срабатывании которого обращается к Model, берет оттуда актуальный идентификатор состояния и отображает в соответсвии с ним нужный мувиклип. Важно понимать, что я не имею в виду "взять все, что есть в кадрах, конвертировать в мувик и кинуть все эти три мувика на сцену первого кадра прямо в программе флеш". Нужно создать отдельную папочку views и создать в ней три (в данном случае) класса - TitleView, LevelsView и GameVeiw, которые либо будут наследовать от MovieClip и создавать в себе мувики из библиотеки, либо будут напрямую наследоваться от них. |
Я примерно понял. Получается Model- будет являться неким контроллером, через который будет проходить вся работа.
В общем надо пробовать и продумать связку всей этой цепи классов. С ООП имел дело, но не являюсь профессионалом. Спасибо за предложенный вариант. Буду пытаться делать. |
нет, контроллер - это тот, кто контролирует модель и изменяет))) А модель - это просто набор данных. Она ничем не занимается, кроме хранения данных и крика о том, что её кто-то изменил. View же, с вою очередь, отображает все это.
|
Цитата:
В мвц модель содержит данные И всю логику их обработки. Контроллер нужен только для того чтобы обработать запрос от пользователя. |
Цитата:
|
Я не имел ввиду модель MVC. Через MODEL будут осуществляться все действия и через него будут связаны остальные классы.
|
| Часовой пояс GMT +4, время: 08:03. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.