Инструменты пользователя

Инструменты сайта


lm2:ce:winstart

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
lm2:ce:winstart [2020/08/05 18:46]
ruben удалено
— (текущий)
Строка 1: Строка 1:
-====== Запуск системы на Windows ====== 
- 
-===== Создание структуры директорий: ===== 
- 
-  - Создаем папку empty_project и копируем в нее файлы start.exe и все dll-файлы из дистрибутива. 
-  - Создаем папку images – каталог хранения рендеров, его мы укажем в конфигурационном файле в качестве ImagesPath. Необходимо поместить туда файл logo.png 
-  - Создаем папку configs – каталог для хранения конфигурационных файлов (кроме основного конфигурационного файла, который должен быть расположен в корневом каталоге) 
-  - Создаем папку fonts – каталог для хранения используемых шрифтов 
- 
-===== Создание файлов проекта: ===== 
- 
-==== config.xml ==== 
- 
-Создаем config.xml в папке empty_project. Config.xml – файл, который платформа загружает по-умолчанию. Если указать в качестве параметра запуска другой файл, то вместо config.xml будет загружен указанный. В тэге System определяем настройки программы. В тэге VM определяем виртуальную машину с её настройками. В тэге Font определяем используемый шрифт: 
- 
-<code xml> 
-<?xml version="1.0" encoding="utf-8" standalone="yes"?> 
-<root> 
-  <System 
-      Language="ru" 
-      ImagesPath="images/" 
-      ConfigsPath="configs/" 
-      Log="true"/> 
-  <VM 
-      ID="main" 
-      Visual="panels.xml" 
-      StartupLayout="viewports.xml" 
-      StartupLogic="start.lua"> 
-  </VM> 
-  <Font ID="Default" FileName="fonts/LiberationSerif-Regular.ttf" /> 
-</root> 
- 
- 
-</code> 
- 
-==== viewports.xml ==== 
- 
-Создаем viewports.xml в папке empty_project/configs/, указанный в атрибуте StartupLayout файла config.xml. Это файл с настройками окон программы, в нем указывается разрешение окон программы (MonitorWidth и MonitorHeight) и монитор, на котором они будут отображены (тэг ViewPort, атрибут Monitor). Cистема может оперировать несколькими мониторами. Определим одно окно программы на первом мониторе, разрешение – 800×480 
- 
-<code xml> 
-<?xml version="1.0" encoding="utf-8" standalone="yes"?> 
-<root MonitorWidth="800" MonitorHeight="480"> 
-  <ViewPort Monitor="0,0" ID="main_viewport" /> 
-</root> 
- 
- 
-</code> 
- 
-==== panels.xml ==== 
- 
-Создаем panels.xml, указанный в атрибуте Visual файла config.xml. В файле panels.xml указываются элементы, которые будут использоваться в процессе работы программы. В тэге Text указываем файл с текстовыми ресурсами. В тэге Library указываем файл с шаблонами элементов. В тэге GUI создаем тег Panel с набором элементов на панели. Для каждого элемента необходимо определить тег Entry и задать ID элемента и TypeID из файла templates.xml. 
- 
-<code xml> 
-<?xml version="1.0" encoding="utf-8" standalone="yes"?> 
-<root> 
-    <Text FileName="text.xml"/> 
-    <Library FileName="templates.xml"/> 
-    <GUI> 
-        <Panel ID="main" VPWidth="800" VPHeight="480"> 
-            <Comment>Empty project main panel</Comment> 
-            <Entry ID="bg" TypeID="bg"> 
-                <Comment>Panel background</Comment> 
-            </Entry> 
-            <Entry ID="btExit" TypeID="button" Top="300" Left="300"/> 
-            <Entry ID="Logo" TypeID="logo" Top="60" Left="60"/> 
-        </Panel> 
-    </GUI> 
-</root> 
- 
- 
-</code> 
- 
-==== templates.xml ==== 
- 
-Создаем templates.xml. В этом файле определим шаблоны элементов, которые можно использовать для графических элементов. Каждый элемент может содержать различные типы подэлементов. В этой статье используются только типы Rectangle, TextBox и Image. Опишем в templates.xml все элементы, использованные в panels.xml. Rectangle – отрисовывается прямоугольник с заданными параметрами. TextBox – выводится текст. Image – выводится рендер из указанного файла. 
- 
-<code xml> 
-<?xml version="1.0" encoding="utf-8" standalone="yes"?> 
-<root> 
-    <Library> 
-        <Element ID="bg" Width="800" Height="480"> 
-            <Comment>Background</Comment> 
-            <Rectangle ID="bg" Rect="50,50,700,380" Color="white" BGColor="black" Thickness="1" CornerRadius="10"/> 
-            <TextBox ID="text" Rect="full" TextTID="txtEmptyProject" Font="Default" Size="60" Align="Center" VAlign="Center"/> 
-        </Element> 
-        <Element ID="button" Width="200" Height="80"> 
-            <Rectangle ID="bg" Rect="full" Color="white" BGColor="black" Thickness="2" CornerRadius="5"/> 
-            <TextBox ID="text" Rect="full" TextTID="txtExit" Font="Default" Size="30" Align="Center" VAlign="Center"/> 
-        </Element> 
-        <Element ID="logo" Width="369" Height="595" Scale="0.25"> 
-            <Image Rect="full" Source="logo.png"/> 
-        </Element> 
-    </Library> 
-</root> 
- 
- 
-</code> 
- 
-==== text.xml ==== 
- 
-Создаем text.xml, указанный в качестве текстового ресурса в panels.xml. Платформа позволяет легко создавать мультиязычный интерфейс, для этого необходимо для каждого текста определить перевод в текстовых ресурсах. 
- 
-<code xml> 
-<?xml version="1.0" encoding="utf-8" standalone="yes"?> 
-<root> 
-  <Text ID="txtEmptyProject"> 
-    <Entry Lang="ru" Value="Пустой проект" /> 
-    <Entry Lang="en" Value="Empty project" /> 
-  </Text> 
-  <Text ID="txtExit"> 
-    <Entry Lang="ru" Value="Выход" /> 
-    <Entry Lang="en" Value="Exit" /> 
-  </Text> 
-</root> 
- 
- 
-</code> 
- 
-==== start.lua ==== 
- 
-Создаем start.lua, указанный в тэге StartupLogic файла config.xml. После того как все графические элементы определены, необходимо прописать логику их использования. Это делается в файле, указанном в StartupLogic. Чтобы описанная нами панель main появилась в окне с ID=”main_viewport”, необходимо указать это в файле start.lua, следующим образом: 
- 
-<code lua> 
-Panel('main_viewport', 'main') 
- 
- 
-</code> 
- 
-На панели определена кнопка btExit, чтобы обработать событие нажатия на эту кнопку, необходимо прописать это в файле start.lua: 
- 
-<code lua> 
-function H_Exit(_ev) 
-  sys.Exit() 
-end 
-AddEventHandler('main.btExit.Mouse.LeftPress', 'H_Exit') 
- 
- 
-</code> 
- 
-Полный текст файла start.lua: 
- 
-<code lua> 
-Panel('main_viewport', 'main') 
- 
-function H_Exit(_ev) 
-  sys.Exit() 
-end 
-AddEventHandler('main.btExit.Mouse.LeftPress', 'H_Exit') 
- 
- 
-</code> 
- 
-===== Запуск ===== 
- 
-Запускаем start.exe. Таким образом мы описали одно окно с разрешением 800х480, расположенное на первом мониторе. В этом окне отрисовано три элемента – бэкграунд с текстом, рендер с логотипом и кнопка выхода: {{  :lm2:ce:empty_project.png?direct&400  }}{{:lm2:ce:empty_project.zip|empty_project.zip}} 
- 
  
lm2/ce/winstart.1596642413.txt.gz · Последнее изменение: 2020/11/30 14:12 (внешнее изменение)