My:Abs
Менеджирование сцен
- Создание окна древовидного списка сцен (добавление, перенос, переименование).
- Задание размеров экрана (лейаута). Выбирается из списка. В список можно добавлять лейауты. Появляется область редактирования, отмеченная рамкой с прямоугольной сеткой.
- Создание новой сцены, задание ее размеров. Активная сцена отображается в виде рамки на лейауте. Начальное положение по центру лейаута, затем может быть перемещена по нему. Для размера сцены по умолчанию используются параметры последней созданной.
- Окно опций с закладками (лейаут, сцена...). В опциях сетка вкл/выкл., задается ширина и высота ячейки сетки; изменяется размер лейаута; размер текущей сцены
Замечания
- Все окна не модальные, находящиеся поверх приложения; за основу взять интерфейс любого граф.редактора (flash и т.п.)
- Группировка списка сцен делается для удобства пользователя и не имеет отношения к логике взаимодействия сцен и лейаутов.
- Внутри сцены может быть размещена другая сцена (древесная иерархия вложенности); координаты сцен относительно их родителя
- На лейауте может находиться несколько сцен.
- Одна и та же сцена может находиться на разных лейаутах в различных местах.
- У сцены кроме уникального имени есть ее тип ("поисковая область", "инвентарь" и т.п.). Тип выбирается из listbox-а и может быть туда добавлен. Тип нужен для групповых операций. Например задать одинаковые координаты в лейауте всем сценам данного типа.
- Каждая корневая (лежащая на лейауте) сцена помнит свои положения на лейаутах различного типа, на которых она "просматривалась".
Простой редактор
- Перетаскивание из редактора ресурсов (РР) одного обьекта на сцену. Если координаты обьекта не определены, по умолчанию центруется относительно сцены
- Перетаскивание на сцену папки - группы обьектов.
- Вокруг обьектов на сцене рисуются рамки (откл/вкл в опциях).
- При клике на обькт появляется рамка другого цвета (активный обьект). Этот обькт можно двигать мышкой по сцене.
- У каждого обьекта есть тип и зависящие от типа свойства. Тип и свойства интерпретируются вьювером, поэтому жестко заданы (не добавляются пользователем).
- У каждого следующего добавляемого обьекта тип устанавливается по у молчанию как у предыдущего. У активного могут быть изменены.
- Базовые типы:
- фон (или интерьер) - на события не реагирует
- поисковый - при клике обьект у него увеличивается счетчик кликов. Если помечена галочка "удалять" - удаляется со сцены (становится невидимым). У поискового обекта может быть указана сцена и обьект на этой сцене с которым данный поисковый обьект связан. Интерпретируется вьювером (например, связь поискового обькта и инвенторя).
- контрол - обьект обладающий способностью самостоятельно обрабатывать события (типа регулятора громкости, чекбокса и т.п.). При изменении состояния контрола во вьювере будет вызываеться событийная функция, которой передается имя контрола и его состояние, которая это изменение обрабатывает. В дальнейшем, возможно, переход на скриптовую обработку.
- дверь - при клике на обьект открывается другая сцена. С обектом связывается ее имя. Возможны два режима:
- текущая сцена закрывается, новая открывается
- новая открывается поверх старой в режиме модального окна
- У каждой сцены есть поле - имя сцены которую надо вызвать, если "миссия выполнена". Что это значит интерпретируется вьювером (например, кликнуты все поисковые обьекты)
Простой вьювер
- Реализовать обработку - проигрование текущей сцены и связанной с ней дверями других сцен.
- При открытии сцены счетчики кликов поисковых обьектов обнуляются. Если все обьекты типа поисковые имеют по одному клику (и/или убраны) - сцена закрывается. Если не указана последующая сцена приложение закрывается. Иначе открывается эта сцена.
- Реализовать на простой интерфейс и упрощенную игру типа Mysteriez.