Механики
Механика - это мини игра: тест, квест или любой другой вид.
Зависимости:
mobx
@itgenio/edik-core
@itgenio/utils
Архитектура
Общее
Механика состоит из двух компонентов:
"Мозг"(данные+логика);"Дизайн"(внешний вид).
Мозг знает о дизайне, дизайн не знает о мозге.
Т.о., мы можем заворачивать Мозг в любой подходящий дизайн, чтобы разнообразить пользовательский опыт.
Почему фигово разделять на две части, дизайн и мозг
- самое главное - ограничение UI - сужается разнообразие тем, тяжелее делать уникальные вещи.
- много кода
Новый подход
- один класс - одна механика
- если нужен простой способ изменения данных в механике - пишем редактор
- возможно редактор сможет "натягивать" темы. В целом должна быть идентичная структура. Т.е. например варианты ответов с картинками не могут стать вариантами ответов с текстом и т.д.
Сохранение состояния
ВАЖНО Прочесть README
в core-player/README.md
чтобы понимать основные моменты.
Т.к. механики нацелены на изменение состояния, важно сохранять его.
Так же, при выполнении логики механик, часто будут меняться базовые свойства, состав объектов на слайде и состав компонентов у объектов.
Базовые принципы:
- перед созданием компоненты/объекта проверяем, что его нет
- сохраняем минимально необходимое кол-во данных, чтобы воспроизвести текущее состояние механики
Сборка
Meteor сборка автоматически собирается после обычной сборки