Границы ответственности02 / 21

Кто управляет интерфейсом

Разделим оформление, данные и взаимодействие.

Тулкит получает готовую поверхность и параметры. Он не выбирает размер экрана, не загружает шрифты и не вызывает игровые команды. Поэтому одну панель можно использовать в меню, магазине или боевом HUD.

Приложение решает

  • layoutРазмеры и положение
  • contentТекст и данные
  • inputНажатие и действие
  • timeПауза и движение

Тулкит рисует

  • surfaceФон и грани
  • iconВекторный знак
  • stateВыделение элемента
  • effectКадр анимации
Объекты сцены остаются у приложения. Эффект освобождает только созданные им ресурсы.

Координаты — локальные логические единицы контейнера. Если родитель масштабирован вдвое, панель и её иконки масштабируются вместе. Передавать физические пиксели canvas вместо локальных размеров не нужно.

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

Источники ↗

Cyber UI Toolkit · README↗Контракты локальных размеров и владения ресурсами.PixiJS · Container↗Иерархия объектов и преобразования.