Пользовательский интерфейс для нескольких проектов Александр Веселов
Этапы работы над интерфейсом набор экранов и переходов описание возможностей каждого экрана набросок каждого экрана тестирование экранов реализация в коде с черновой графикой (рабочая версия) тестирование вставка финальной графики тестирование N переделок финальной графики
Интерфейс в схематическом виде
Работающий экран без графики
Что было до Недостатки –у каждого проекта своя система Достоинства –данные хранятся в XML формате –логика вынесена в LUA скрипты –у некоторых проектов был редактор
Подробнее о недостатках
XML формат без визуального редактора
Разделение работы над UI Уровень дизайнера –общая функциональность Уровень художника –статический вид –анимации Уровень программиста –сложное взаимодействие окон –расширение системы
Требования к системе Расширяемость Легко изменять готовый интерфейс (визуальную часть) Разделение труда Визуальное редактирование
Пример работы интерфейса
Что должен уметь интерфейс
Атомарные реакции на сообщения Послать сообщение внутри интерфейса показать окно скрыть окно disable кнопки, прочее Послать сообщение в игру отдать команду Выполнить проверку (ветвление) вызвать скриптовую функцию значение переменной
Схема классов реакций
Схема работы CReaction
Окно с точки зрения художника Примеры динамических эффектов –Двигаться в заданную точку с заданной скоростью –Поменять цвет фона за заданное время –Послать в игру сообщение
Позднее изменение вида окон
Что получилось Все проекты Nival используют Система легко расширяется Визуальный редактор Можно создавать библиотеку контроллов Легко менять внешний вид контроллов