19.07.2009

Suitcase Construction 4 - User's Interactions

Закончил первую итерацию написания ui библиотеки. Я хочу написать lite-ui-manager с разметкой и созданием внешнего вида контролов в xml. Использовать собираюсь в suitcase project и будущих проектах под flash. Написал шаблоны для всех экранов suitcase project. Логика почти закончена на всех экранах:
приветствие, главное меню, игровое меню, об игре, помощь, редактор профайлов, настройки и настройка управления, магазин, мастерская, статистика, игровые сообщения, карта приключений.

Библиотека получается с одним важным отличием от всех gui, которые я писал до этого. Все отображение состояния контрола строится на контроллерах состояния. Если обычно у нас есть набор флагов или фиксированное состояние (наведен, нажат, выключен, выбран и т.д.), которые принимают какие-то значения, то в случае контроллеров мы имеем дело с интервалом значений 0..1, контроллер начинают изменяться автоматически в зависимости от состояния контрола. Внешний вид контрола имеет набор "нормальных" параметром внешнего вида (normal transform), которые изменяют добавленные в него модификаторы. Модификатор может изменять любое поле трансформа в зависимости от значения соответствующего контроллера. Скорость изменения контроллеров тоже задается.

Раньше в gui для некоторых видов элементов я использовал этакие контроллеры, а в игровом коде они вообще на каждом шагу. Теперь в ui мне не придется писать это по сто раз, т.к. в объекте контрола это всё унифицировано. И я теперь могу создавать простейшие кликалки со всякими свечениями и переливами прямо в xml. Прямо в xml еще прописываются типичные gui based actions. Например, можно добавить на главный экран красивую интерактивную картинку со ссылкой на паблишера. Быстро прописывать кнопки переключения экранов, а так же, например, <select_next id="levels_group" loop="false" skip_disables="true"/>

Комментариев нет:

Отправить комментарий