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

Материал из synset
Перейти к: навигация, поиск
(Редактирование)
(Редактор сцен)
Строка 116: Строка 116:
 
* '''Открыть''' - вызывается другая сцена в двух режимах: "комната" (полный переход на сцену) и "шкаф" - одна сцена поверх другой (подобно модальному окну).
 
* '''Открыть''' - вызывается другая сцена в двух режимах: "комната" (полный переход на сцену) и "шкаф" - одна сцена поверх другой (подобно модальному окну).
 
* '''Применить'''
 
* '''Применить'''
 
  
 
=== Редактирование ===
 
=== Редактирование ===

Версия 07:31, 22 июля 2011

В хидене присутствует статический фон и объекты. Объекты могут быть:

  • статически "вплетены" в фон (подобно Mysteriez) и необходимо только задание области для клика на них.
  • всегда быть в одном и том-же месте, но удаляться при клике (отделяться от бекграунда)
  • менять своё положение в одной и той же сцене
  • использоваться в различных сценах (наборы их координат задаются в редакторе сцены).

В данной игровой сессии объекты могут быть не "кликательными" и быть составной фона, в другой "кликательными". У объектов может быть различный z-порядок.

Редактор ресурсов

Редактор ресурсов является самостоятельным приложением (использующим стандартный GUI) которое хранит и менеждирует все графические ресурсы проекта (бекграунды, небольшие статические картинки, анимированные клипы). Со временем должен стать универсальным инструментом для различных задач фреймворка. Сам по себе он не является редактором сцен, так как подобный редактор зависит от типа игры. Решает задачу уникальности имён объектов (ресурсов). В нём не создаётся атлас текстур (редактор ни чего не знает о расшаривании).

Перенесение объектов в другие модули=приложения (редакторы сцены, интерфейса) осуществляется по drag-and-drop. При этом "переносится" информация о ресурсе, но не сами графические файлы.

С одной и той же базой ресурсов могут одновременно работать различные экземпляры приложения (несколько художников, редакторов сцен и т.д.). Окно редактора ресурсов должно изменять свой размер, иметь галочку "быть сверху".

Загрузка графики

Open graph res.jpg

Можно загружать различные виды сырых графических ресурсов. Их тип указывается в окне загрузки. Это может быть:

  • Отдельный файл с неопределёнными координатами.
  • Все файлы из директории в различных режимах:
    • Однотипные кадры анимации, сразу группируются в объект.
    • Фон и объекты на нём в виде отдельных файлов одинакового размера. Те файлы которые могут быть обрезаны интерпретируются как объекты. Запоминаются их координаты относительно исходного размера и имя бекраунда (необрезаемого файла) с которым они были связаны. Соответственно бекграунд помнит список объектов которые на нём были.

При загрузке графики происходит её обрезание, вычисление контрольной суммы для идентификации уникальности (см.ниже), создание иконки (автоматическое сжатие).

Имена ресурсов

Все ресурсы имеют уникальные текстовые идентификаторы (имена). По умолчанию им присваивается имя файла. Если такое имя уже есть к нему добавляется порядковый номер. Имена - произвольные строки. Могут быть на русском.

После загрузки ресурсы могут быть переименованы (по-прежнему с контролем уникальности их имени).

Иерархическая группировка

ACDSee.jpg

Ресурсы группируются в древовидной структуре (подобно ACDSee Pro). Стоит использовать стандартные контролы (TreeView и т.п.). Пример дерева:

  • Бекграунды
    • Спортивные
    • Офисы
  • Интерьеры
    • Столы
    • Шкафы
  • Объекты
    • Спортивный инвентарь
    • Кухонная утварь
  • Кнопки

Должна быть реализована процедура менеджирования (создания, удаления и т.п.) директорий. Их имена не обязаны быть уникальными (по крайней мере на отдельных ветвях дерева)

Графические ресурсы (отдельные битмапы и группы анимаций) могут быть помещены в любую директорию дерева. Можно пометить (мультипометка) список объектов и поддиректорий и удалить их (с переспрашиванием) или скопировав, перенести на другую ветвь дерева.

Список финальных объектов (битмапов и клипов) выводится в виде графического (иконками) или текстового списка (настраивается).

Настройка анимации

Для хиденов не предполагается использовать сложных систем анимации. Обычно это зацикленная группа битмапов (фреймов). В большинстве случаев они объединяются при загрузке. Вся группа получает уникальное имя. Фреймы могут удаляться, добавляться, переупорядочиваться Настраивается:

  • стартовый фрейм
  • скорость проигрывания анимации
  • задержка перед повторным проигрыванием (по умолчанию нулевая). Можно заложить два поля: минимальная задержка и максимальная между которыми время будет выбираться случайным образом (для снижения однообразности).

В окне настройки и графическом древовидном списке анимированный объект себя проигрывает в соответствии с этими настройками.

В дальнейшем для других проектов этот раздел развивается.

Слияние баз ресурсов

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

Обеспечение целостности

Необходимо обеспечить целостность графических и логических структур. Например, если некоторый объект удаляется из редактора ресурсов, редакторы сцен или интерфейса которые его используют об этом ни чего нем знают. Возможное решение - счётчик числа использований ресурса (подобно менеджеру памяти). Сообщения об использовании ресурса или его освобождении другими приложениями могут посылаться, например, по TCP протоколу.

Различные размеры одного ресурса

Редактор сцен

Редактор сцен предназначен для формирования сцены хидена. Может использоваться как редактор интерфейса. Основные понятия:

  • сцена - совокупность объектов и областей
  • объект - графический ресурс (фон, интерьер, картинка, клип), отображающийся на сцене
  • область - событийная область на экране (обычно для клика на неё)

Сцена

В редакторе сохраняется список всех созданных сцен. Этот список менеждируется в виде деревестной структуры (аналогично редактору ресурсов). У каждой сцены есть своё уникальное текстовое имя-идентификатор. Кликая на данную сцену в списке её сразу становится видно экране.

Редактирование начинается с создания новой сцены, её помещение в список сцен.

Списки сцен, созданные различными людьми должны сливаться (добавляться) с проверкой уникальности.

Объект

Кроме списка сцен есть текстовый список имён графических ресурсов находящихся на сцене (имена берутся из редактора ресурсов) помещения на сцене графики размещаются, имена ресурсов появляются в списке. При клике на элемент списка появляется рамка вокруг картинки. Отдельная функция меню - показать рамки вокруг всех объектов.

Объект можно перемещать по сцене, изменить его z-координату.

Объект на сцену перетаскивается по drag-and-drop из редактора ресурсов. При перетаскивании бекграунда с нажатой клавишей (например, shift) перетаскивается не только бекграунд но и объекты которые были с ним связаны при загрузке в режиме "фон и объекты".

Область

Область - прямоугольная (в дальнейшем эллипсоидная и полигон) область сцены, при клике на которую что-либо происходит. В простейшем случае совпадет с картинкой объекта.

Действие:

  • Подобрать - при клике объект, связанный с областью удаляется со сцены
  • Отметить - объект не удаляется, но происходит пометка, что по нему кликнули
  • Открыть - вызывается другая сцена в двух режимах: "комната" (полный переход на сцену) и "шкаф" - одна сцена поверх другой (подобно модальному окну).
  • Применить

Редактирование

При клике на объект он выделяется в списке объектов. И наоборот выбор в списке объектов делает активным объект на сцене. Затем он мышкой может быть перетащен. Если с объектом связана область, она перетаскивается вместе с ним.

Аналогично с областью (при клик на сцене должен быть нажать Ctrl). Дополнительно возможно изменить её размер.

Настройки

Окно настроек управляет внешним видом объектов и областей. Возможные режимы:

  • Рамки вокруг объектов: (всех, активного, не показывать)
  • Границы областей: (все, активная, не показывать)
  • Рамки вокруг подсцен