===== Логическая и файловая структура проектов ===== ==== Логическая структура проекта ==== Прежде чем начать создавать свой проект, нужно ознакомиться с логической структурой, которая предусматривается для всех проектов платформы Lambda-Mu 2. Видимая пользователю часть проекта это окна логических машин. Логических машин может быть несколько. Работать с ними можно одновременно и независимо. Деление на логические машины диктуется логикой проекта и задается в главном конфигурационном файле (см. статью "[[:lm2:ce:s_config|Главный конфигурационный файл]]"). Дочерние элементы окон - панели. Далее элементы, далее подэлементы. Свойствами трех последних управляет lua-код (скрипт). Свойства могут иметь зависимости, а именно текстуры, шрифты. Так же при необходимости нужны звуковые файлы и строковые данные, к которым обращается lua-код. Отдельное место занимают плагины - динамически подгружаемые библиотеки, которые расширяют функционал платформы. {{ :lm2:ce:sheme2020_1.jpg?direct& |sheme2020_1.jpg}} Внимательно изучите схему и при необходимости возвращайтесь к ней. Структурированность - основа хорошего проекта. ==== Файловая структура проекта ==== **Исполняемый модуль (в корне проекта)**- ядро платформы, исполняемый файл .exe и динамические библиотеки .dll необходимые для старта платформы в случае Windows или скомпилированный бинарный файл в случаях систем на основе ядра Linux. Исполняемые модули можно найти в репозитарии [[https://gitlab.com/lambda-mu/lm.ver2/lm2.engine.ce|lm2.engine.ce]]. **Главный конфигурационный файл (в корне проекта)** - конфигурационный файл .xml, задает основные настройки платформы. Подробнее см. статью "[[:lm2:ce:s_config|Главный конфигурационный файл]]". **Шрифты (обычно папка fonts)**- файлы .ttf со шрифтами, используемыми в проекте. Подключаются в главном конфигурационном файле. **Звуки (обычно папка sounds) **- файлы .wav со звуками, используемыми в проекте. Подключаются в главном конфигурационном файле. **Плагины (в корне проекта) **- динамические библиотеки .dll, расширяют функционал платформы. Подключаются в главном конфигурационном файле. Подробнее см. статьи "[[:lm2:ce:s_pl|Плагины и их разработка]]" и "[[:lm2:ce:s_self_pl|Встроенные плагины]]". **Файл настройки окон (в папке configs)** - конфигурационный файл .xml, описывает логические машины, родителей окон. Подключается в главном конфигурационном файле. Подробнее см. статью "[[:lm2:ce:s_win|Конфигурация окон]]" **Lua-код (в папке configs)** - файлы .lua. Сриптовый язык lua быстро осваивается и ипользуется для программирования на платформе. Первый файл подключается в главном конфигурационном файле. Подробнее см. статью "[[:lm2:ce:s_lua|Lua-код (скрипт)]]". **Описание панелей (****в папке configs)**- конфигурационный файл .xml, описывает панели. Подключается в главном конфигурационном файле. Подробнее см. статью "[[:lm2:ce:s_panels|Описание панелей]]". **Шаблоны элементов ****(****в папке configs)** - файл .xml набор шаблонов, которые можно использовать для графических элементов. Подключается в файле описания панелей. Подробнее см. статью "[[:lm2:ce:s_templates|Библиотека элементов]]". **Изображения (обычно папка images) **- файлы .png c рендерами. Путь к папке задается в главном конфигурационном файле. **Строковые данные (в папке configs)** - файлы .xml со строковыми данными. Подключаются в файле описания панелей. {{ :lm2:ce:sheme2020_2.jpg?direct& |sheme2020_2.jpg}}