My:Abs

Материал из synset
Версия от 06:42, 22 июля 2011; WikiSysop (обсуждение | вклад) (Загрузка графики)
Перейти к: навигация, поиск

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

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

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

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

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

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

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

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

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

Open graph res.jpg

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

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

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

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

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

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

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

ACDSee.jpg

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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