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

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

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

Регистрация: Mar 2013
Сообщений: 157
По умолчанию Меню как в Angry Birds

Здравствуйте.
Делаю пакет мини-приложений. Хочу реализовать интерфейс игры как например в Angry Birds.

Титулка -> Список мини игр -> выбор мини игры (запуск игры)

Постараюсь более понятней объяснить.

Как реализовать, чтобы игра запускалась в том же окне. Например, вход в настройки, вход в список мини-игр, запуск мини игры из списка, выход в главное меню и т.пр.

Я пытался реализовать подобное с помощью кадров, все получалось до момента запуска игры.
Т.е. На 1 кадре- титулка, 2-м кадре перечень уровней, 3-й кадр игра. И вот когда переходит к 3-му кадру, то кнопки игры не работают.


Проще говоря, меня интересует сама концепция переключения между окнами (если можно так сказать) в приложении.

Буду благодарен за пример, чтобы посмотреть как такое реализовывается.

Старый 02.11.2017, 10:34
ZergMaster вне форума Посмотреть профиль Отправить личное сообщение для ZergMaster Найти все сообщения от ZergMaster
  № 2  
Ответить с цитированием
ZergMaster
 
Аватар для ZergMaster

Регистрация: May 2008
Адрес: Питер
Сообщений: 385
Отправить сообщение для ZergMaster с помощью ICQ Отправить сообщение для ZergMaster с помощью Skype™
art_maestro
концепция такая:
оставляем только один кадр - первый. Содержимое кадров убираем в мувиклипы-объекты. Таким образом имеем три MovieClip:
1 объект - титулка, второй - перечень уровней, 3-й - игра.
Далее добавляем на сцену все три объекта. И по запросу управляем просто их visible.

Описанный вариант - тоже далеко не идеальный, но гораздо лучше, чем кадры. Потому что все будет работать.
__________________
while(live()) { hope(); }

Старый 02.11.2017, 12:55
art_maestro вне форума Посмотреть профиль Отправить личное сообщение для art_maestro Найти все сообщения от art_maestro
  № 3  
Ответить с цитированием
art_maestro

Регистрация: Mar 2013
Сообщений: 157
Спасибо за отзыв. Я тоже за это думал, за подмену мувиков, но может существует еще какой-то способ. Использовать visible можно, но мне кажется это не совсем удобно, т.к. уровней будет несколько десятков.

Старый 02.11.2017, 13:59
ZergMaster вне форума Посмотреть профиль Отправить личное сообщение для ZergMaster Найти все сообщения от ZergMaster
  № 4  
Ответить с цитированием
ZergMaster
 
Аватар для ZergMaster

Регистрация: May 2008
Адрес: Питер
Сообщений: 385
Отправить сообщение для ZergMaster с помощью ICQ Отправить сообщение для ZergMaster с помощью Skype™
вполне удобно. Лучше, конечно, делать следующим образом.
имеем отдельный класс EventDispatcher (назовем его Model), где хранится состояние сцены (id мувика, который должен быть показан в данный момент). Это состояние меняется сеттером, при котором этот класс диспатчит событие СОСТОЯНИЕ_СЦЕНЫ_ИЗМЕНЕНО.
Все остальные, кому это интересно, подписываются на это событие и делают соответствующие изменения. В данном случае, это главная сцена, то есть Main класс, который создает сначала экземпляр Model, потом подписывается на событие CHANGE_SCENE_STATE, при срабатывании которого обращается к Model, берет оттуда актуальный идентификатор состояния и отображает в соответсвии с ним нужный мувиклип.
Важно понимать, что я не имею в виду "взять все, что есть в кадрах, конвертировать в мувик и кинуть все эти три мувика на сцену первого кадра прямо в программе флеш". Нужно создать отдельную папочку views и создать в ней три (в данном случае) класса - TitleView, LevelsView и GameVeiw, которые либо будут наследовать от MovieClip и создавать в себе мувики из библиотеки, либо будут напрямую наследоваться от них.
__________________
while(live()) { hope(); }

Старый 02.11.2017, 14:36
art_maestro вне форума Посмотреть профиль Отправить личное сообщение для art_maestro Найти все сообщения от art_maestro
  № 5  
Ответить с цитированием
art_maestro

Регистрация: Mar 2013
Сообщений: 157
Я примерно понял. Получается Model- будет являться неким контроллером, через который будет проходить вся работа.

В общем надо пробовать и продумать связку всей этой цепи классов. С ООП имел дело, но не являюсь профессионалом. Спасибо за предложенный вариант. Буду пытаться делать.

Старый 02.11.2017, 17:28
ZergMaster вне форума Посмотреть профиль Отправить личное сообщение для ZergMaster Найти все сообщения от ZergMaster
  № 6  
Ответить с цитированием
ZergMaster
 
Аватар для ZergMaster

Регистрация: May 2008
Адрес: Питер
Сообщений: 385
Отправить сообщение для ZergMaster с помощью ICQ Отправить сообщение для ZergMaster с помощью Skype™
нет, контроллер - это тот, кто контролирует модель и изменяет))) А модель - это просто набор данных. Она ничем не занимается, кроме хранения данных и крика о том, что её кто-то изменил. View же, с вою очередь, отображает все это.
__________________
while(live()) { hope(); }

Старый 02.11.2017, 19:21
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 7  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Цитата:
Сообщение от ZergMaster Посмотреть сообщение
нет, контроллер - это тот, кто контролирует модель и изменяет))) А модель - это просто набор данных. Она ничем не занимается, кроме хранения данных и крика о том, что её кто-то изменил. View же, с вою очередь, отображает все это.
Не учите плохому, это называется ТТУК.
В мвц модель содержит данные И всю логику их обработки. Контроллер нужен только для того чтобы обработать запрос от пользователя.
__________________
Дети не должны знать о своих родителях

Старый 02.11.2017, 21:48
ZergMaster вне форума Посмотреть профиль Отправить личное сообщение для ZergMaster Найти все сообщения от ZergMaster
  № 8  
Ответить с цитированием
ZergMaster
 
Аватар для ZergMaster

Регистрация: May 2008
Адрес: Питер
Сообщений: 385
Отправить сообщение для ZergMaster с помощью ICQ Отправить сообщение для ZergMaster с помощью Skype™
Цитата:
Сообщение от Tails Посмотреть сообщение
В мвц модель содержит данные И всю логику их обработки.
Да, спасибо за уточнение. Конечно, вы правы.
__________________
while(live()) { hope(); }

Старый 02.11.2017, 23:26
art_maestro вне форума Посмотреть профиль Отправить личное сообщение для art_maestro Найти все сообщения от art_maestro
  № 9  
Ответить с цитированием
art_maestro

Регистрация: Mar 2013
Сообщений: 157
Я не имел ввиду модель MVC. Через MODEL будут осуществляться все действия и через него будут связаны остальные классы.

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

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

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


 


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


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