My:Abs — различия между версиями

Материал из synset
Перейти к: навигация, поиск
(Менеджирование сцен)
Строка 10: Строка 10:
 
=== Замечания ===
 
=== Замечания ===
  
* Все окна немодальные, находящиеся поверх приложения; за основу взять интерфейс любого граф.редактора (flash и т.п.)
+
* Все окна не модальные, находящиеся поверх приложения; за основу взять интерфейс любого граф.редактора (flash и т.п.)
* Группировка списока сцен делается для удобства пользователя и не имеет отношения к логике взаимодействия сцен и лейаутов.
+
* Группировка списка сцен делается для удобства пользователя и не имеет отношения к логике взаимодействия сцен и лейаутов.
* Внутри сцены может быть размещена другая сцена (древестная иерархия вложенности); координаты сцен относительно их родителя
+
* Внутри сцены может быть размещена другая сцена (древесная иерархия вложенности); координаты сцен относительно их родителя
 
* На лейауте может находиться несколько сцен.
 
* На лейауте может находиться несколько сцен.
* Одна и таже сцена может находиться на разных лейаутах в различных местах.
+
* Одна и та же сцена может находиться на разных лейаутах в различных местах.
 
* У сцены кроме уникального имени есть ее тип ("поисковая область", "инвентарь" и т.п.). Тип выбирается из listbox-а и может быть туда добавлен. Тип нужен для групповых операций. Например задать одинаковые координаты в лейауте всем сценам данного типа.
 
* У сцены кроме уникального имени есть ее тип ("поисковая область", "инвентарь" и т.п.). Тип выбирается из listbox-а и может быть туда добавлен. Тип нужен для групповых операций. Например задать одинаковые координаты в лейауте всем сценам данного типа.
* Каждая корневая (лежащая на леауте) сцена помнит свои положения на лейаутах различного типа, на которых она "просматривалась".
+
* Каждая корневая (лежащая на лейауте) сцена помнит свои положения на лейаутах различного типа, на которых она "просматривалась".
  
 
== Простой редактор ==
 
== Простой редактор ==

Версия 09:54, 5 августа 2011

Менеджирование сцен

  • Создание окна древовидного списка сцен (добавление, перенос, переименование).
  • Задание размеров экрана (лейаута). Выбирается из списка. В список можно добавлять лейауты. Появляется область редактирования, отмеченная рамкой с прямоугольной сеткой.
  • Создание новой сцены, задание ее размеров. Активная сцена отображается в виде рамки на лейауте. Начальное положение по центру лейаута, затем может быть перемещена по нему. Для размера сцены по умолчанию используются параметры последней созданной.
  • Окно опций с закладками (лейаут, сцена...). В опциях сетка вкл/выкл., задается ширина и высота ячейки сетки; изменяется размер лейаута; размер текущей сцены

Замечания

  • Все окна не модальные, находящиеся поверх приложения; за основу взять интерфейс любого граф.редактора (flash и т.п.)
  • Группировка списка сцен делается для удобства пользователя и не имеет отношения к логике взаимодействия сцен и лейаутов.
  • Внутри сцены может быть размещена другая сцена (древесная иерархия вложенности); координаты сцен относительно их родителя
  • На лейауте может находиться несколько сцен.
  • Одна и та же сцена может находиться на разных лейаутах в различных местах.
  • У сцены кроме уникального имени есть ее тип ("поисковая область", "инвентарь" и т.п.). Тип выбирается из listbox-а и может быть туда добавлен. Тип нужен для групповых операций. Например задать одинаковые координаты в лейауте всем сценам данного типа.
  • Каждая корневая (лежащая на лейауте) сцена помнит свои положения на лейаутах различного типа, на которых она "просматривалась".

Простой редактор

  • Перетаскивание из редактора ресурсов (РР) одного обьекта на сцену. Если координаты обьекта не определены, по умолчанию центруется относительно сцены
  • Перетаскивание на сцену папки - группы обьектов.
  • Вокруг обьектов на сцене рисуются рамки (откл/вкл в опциях).
  • При клике на обькт появляется рамка другого цвета (активный обьект). Этот обькт можно двигать мышкой по сцене.
  • У каждого обьекта есть тип и зависящие от типа свойства. Тип и свойства интерпретируются вьювером, поэтому жестко заданы (не добавляются пользователем).
  • У каждого следующего добавляемого обьекта тип устанавливается по у молчанию как у предыдущего. У активного могут быть изменены.
  • Базовые типы:
    • фон (или интерьер) - на события не реагирует
    • поисковый - при клике обьект у него увеличивается счетчик кликов. Если помечена галочка "удалять" - удаляется со сцены (становится невидимым). У поискового обекта может быть указана сцена и обьект на этой сцене с которым данный поисковый обьект связан. Интерпретируется вьювером (например, связь поискового обькта и инвенторя).
    • контрол - обьект обладающий способностью самостоятельно обрабатывать события (типа регулятора громкости, чекбокса и т.п.). При изменении состояния контрола во вьювере будет вызываеться событийная функция, которой передается имя контрола и его состояние, которая это изменение обрабатывает. В дальнейшем, возможно, переход на скриптовую обработку.
    • дверь - при клике на обьект открывается другая сцена. С обектом связывается ее имя. Возможны два режима:
      • текущая сцена закрывается, новая открывается
      • новая открывается поверх старой в режиме модального окна
  • У каждой сцены есть поле - имя сцены которую надо вызвать, если "миссия выполнена". Что это значит интерпретируется вьювером (например, кликнуты все поисковые обьекты)

Простой вьювер

  • Реализовать обработку - проигрование текущей сцены и связанной с ней дверями других сцен.
  • При открытии сцены счетчики кликов поисковых обьектов обнуляются. Если все обьекты типа поисковые имеют по одному клику (и/или убраны) - сцена закрывается. Если не указана последующая сцена приложение закрывается. Иначе открывается эта сцена.
  • Реализовать на простой интерфейс и упрощенную игру типа Mysteriez.