Как запускать программы lua

Этот небольшой пост родился после того, как я решил узнать, как можно запускать скрипты Lua совместно с игрой на C# (либо на другом .NET-языке). с использованием библиотеки LuaInterface. Я был впечатлен легкостью этого интерфейса по сравнению с lua.h на C++

Что нужно знать

C# на приличном уровне, иметь понятие об основах программирования, а также о подключении ссылок в проекте на Visual Studio

Начало

Исходники (со всеми dll, конечно) выложены в конце поста

Первое, что нужно сделать — подключить к нашему проекту LuaInterface.dll. Просто добавляем ссылку на файл .dll. Если вы еще не в курсе, как это делается, то можете найти мануалы в интернете. Также для подключения требуется luanet.dll

LuaInterface — библиотека для удобной интеграции между Lua и CLR
Lua — очень легкий скриптовый язык программирования. Вот его разбор
Для чего нужны скрипты — выдержка из другого моего поста

Скрытый текст

Если вы разрабатывали большие проекты (к примеру, масштабные игры), замечали, что с каждой новой сотней строк кода компиляция идет медленней?

УСТАНОВКА MOONLODER И LUA СКРИПТОВ


В игре создается больше оружия, больше диалогов, больше меню, больше etc.
Одна из самых главных проблем, возникающих в связи с нововведениями — поддерживать бессчетное множество оружия и бейджиков довольно сложное занятие.
В ситуации, когда просьба друга/босса/напарника изменить диалог или добавить новый вид оружия занимает слишком много времени, приходится прибегать к каким-то мерам — например, записи всей этой фигни в отдельные текстовые файлы.
Почти каждый геймдевелопер когда-нибудь делал карту уровней или диалоги в отдельном текстовом файле и потом их считывал. Взять хотя бы простейший вариант — олимпиадные задачи по информатике с файлом ввода

Но есть способ, на голову выше — использование скриптов.

«Окей, для таких дел хватает обычного файла с описанием характеристиков игрока. Но что делать, если в бурно развивающемся проекте почти каждый день приходится немножко изменять логику главного игрока, и, следовательно, много раз компилировать проект?»
Хороший вопрос. В этом случае нам на помощь приходят скрипты, держащие именно логику игрока со всеми характеристиками либо какой-либо другой части игры.
Естественно, удобнее всего держать, логику игрока в виде кода какого-нибудь языка программирования.
Первая мысль — написать свой интерпретатор своего скриптового языка, выкидывается из мозга через несколько секунд. Логика игрока определенно не стоит таких жутких затрат.
К счастью, есть специальные библиотеки скриптовых языков для С++, которые принимают на вход текстовый файл и выполняют его.

Читайте также:
Программа для настройки эирподс на андроиде

Об одном таком скриптовом языке Lua пойдет речь.

Теперь, когда у нас есть проект с подключенным LuaInterface, переходим к коду!

LuaInterface — основы


В основном .cs файле пишем

using LuaInterface;

Основной класс этой библиотеки — Lua

Lua lua = new Lua();

Объявление констант

0 Настройка персонального компьютера для работы с Lua


Очень просто можно объявить константы. Делается это так
lua[ключ] = значение;
lua[«version»] = 0.1; lua[«name»] = «YourName»; lua[«test»] = 200; lua[«color»] = new Color(); lua[«my»] = this;

В качестве значения может выступать что угодно — число, строка, даже классы и структуры (о том, как с ними работать, будет дальше)

Регистрация функций


В Lua можно зарегистрировать функцию из C#

lua.RegisterFunction(название функции в Lua, this, функция);
lua.RegisterFunction(«puts», this, typeof(Program).GetMethod(«Test»));

Регистрация классов и структур

Одна из самых приятных сторон LuaInterface, которая может удивить тех, кто использует Lua совместно с C++, это то, что можно регистрировать объект класса и после этого вызывать в скрипте разные функции «напрямую»
То есть можно сделать так:

class LuaDebug < // Запись любого текста с указанным цветом private void Print(string message, ConsoleColor color) < Console.ForegroundColor = color; Console.WriteLine(message); >public void Log(string message) < Print(«Log: » + message, ConsoleColor.White); >public void Warning(string message) < Print(«Warning: » + message, ConsoleColor.Yellow); >public void Error(string message) < Print(«Error: » + message, ConsoleColor.Red); >public string ConsoleRead() < return Console.ReadLine(); >> // . lua[«Debug»] = new LuaDebug();
str = Debug:ConsoleRead() — считывание строки Debug:Log(«Приложение запущено») Debug:Warning(«Введенная строка: » .. str) Debug:Log(«Удачного дня!») Debug:ConsoleRead() — пауза

Выполнение Lua кода

Выполнить Lua код (со всеми зарегистрированными функциями и константами) можно двумя способами
Первый — прямиком из C#

lua.DoString(код)
lua.DoString(«Debug:Log(‘Hello, Habr!’)» + «n» + «Debug:ConsoleRead()»);

Второй — из файла
lua.DoFile(file)
lua.DoFile(«script.lua»)

(Оба метода возвращают значение object[] — это то, что возвращает Lua скрипт после выполнения)

Обработка исключений

Для обработки исключений — ошибок, которые могут выскочить во время выполнения скрипта, следует использовать LuaException err

try < // Lua, lua, lua >catch (LuaException err) < // Обработка ошибки >

Вызов методов из Lua

Для вызова метода из Lua надо выполнить скрипт, выудить метод, и выполнять его когда потребуется.
Пример

lua.DoFile(«file.lua») LuaFunction func = lua[«func»] as LuaFunction; // function func() end func.Call();

Также в Call(params object[] args) можно передавать входные параметры для функции
Тот же финт срабатывает и со значениями, только вместо LuaFunction используем string, int, double и так далее

Читайте также:
Программа для установки и настройки параметров компьютера

Дополнительные материалы

  • Для таблиц в LuaInterface предусмотрен класс LuaTable, регистрируется в объекте класса Lua он как обычная переменная, а запись переменных в саму таблицу мало чем отличается от записи переменных в самом Lua объекте
  • Также есть класс LuaDLL, используемый для «низкоуровневой» работы с Lua (из lua.h). Толку от него немного, и вряд ли кто-то использует его по-серьезному
    Пример

LuaDLL.lua_open(); LuaDLL.lua_createtable(luaState, 1, 1);

image

Символика Lua

image

Love2D — один из самых популярных движков на Lua

image

Мод для Minecraft на Lua

image

https://bitbucket.org/Izaron/luaforhabr/src
Исходный код

Источник: habr.com

Как установить Lua скриптовой язык в Linux

Lua – бесплатный и открытый, мощный, надежный, минимальный и встраиваемый язык скриптов.

Это расширяемый и интерпретируемый язык сценариев, который динамически типизируются, выполняются путем интерпретации байт-кода с помощью виртуальной машины на основе регистров.

Lua работает на всех, если не на большинстве Unix-подобных операционных систем, включая Linux и Windows; на мобильных операционных системах (Android, iOS, BREW, Symbian, Windows Phone); на встроенных микропроцессорах (ARM и Rabbit); на мэйнфреймах IBM и многом другом.

Lua Особенности:

  • Создает все системы со стандартным компилятором C.
  • Он замечательно легкий, быстрый, эффективный и портативный.
  • Его легко изучить и использовать.
  • Он имеет простой и хорошо документированный API.
  • Он поддерживает несколько типов программирования (например, процедурное, объектно-ориентированное, функциональное и управляемое данными программирование, а также описание данных).
  • Реализует объектно-ориентированное использование мета-механизмов.
  • Он также объединяет простой процедурный синтаксис с грозными конструкциями описания данных, внедренными вокруг ассоциативных массивов и расширяемой семантикой.
  • Поставляется с автоматическим управлением памятью с инкрементной сборкой мусора (таким образом, он идеально подходит для реальной конфигурации, сценариев, а также для создания прототипов).

Как установить Lua в Linux

Пакет Lua доступен в официальных хранилищах основных дистрибутивов Linux, вы можете установить последнюю версию с помощью соответствующего диспетчера пакетов в вашей системе.

$ sudo apt install lua5.3 #Debian/Ubuntu systems # yum install epel-release yum install lua #RHEL/CentOS systems # dnf install lua #Fedora 22+

Примечание. Текущая версия пакета Lua в репозитории EPEL – 5.1.4; поэтому для установки текущей версии вам необходимо собрать и установить ее из исходников, как описано ниже.

Установка Lua из исходников

Во-первых, убедитесь, что в вашей системе установлены средства разработки, в противном случае выполните приведенную ниже команду, чтобы установить их.

$ sudo apt install build-essential libreadline-dev #Debian/Ubuntu systems # yum groupinstall «Development Tools» readline #RHEL/CentOS systems # dnf groupinstall «Development Tools» readline #Fedora 22+

Затем, чтобы создать и установить последнюю версию (версия 5.3.4 на момент написания этой статьи) Lua, запустите следующие команды, чтобы загрузить пакет tar ball, извлечь, построить и установить его.

Читайте также:
Как обнулить пробный период программы

$ mkdir lua_build $ cd lua_build $ curl -R -O http://www.lua.org/ftp/lua-5.3.4.tar.gz $ tar -zxf lua-5.3.4.tar.gz $ cd lua-5.3.4 $ make linux test $ sudo make install

После того, как вы его установили, запустите интерпретатор Lua, как показано:

Используя ваш любимый текстовый редактор, вы можете создать свою первую программу Lua следующим образом.

$ vi hello.lua

И добавьте следующий код в файл.

print(«Hello World») print(«This is Tecmint.com and we are testing Lua»)

Сохраните и закройте файл. Затем запустите свою программу, как показано ниже:

$ lua hello.lua

Для получения дополнительной информации и получения информации о том, как писать программы Lua, перейдите по адресу: https://www.lua.org/home.html

Lua – это универсальный язык программирования, который используется во многих отраслях (от Интернета до игр и обработки изображений и др.), И он разработан с высоким приоритетом для встроенных систем.

Если вы столкнулись с ошибками во время установки или просто хотите узнать больше, используйте форму комментариев ниже, чтобы отправить нам свои мысли.

Источник: itisgood.ru

Как запустить QLua(Lua) — скрипт в терминале QUIK

Снимок

Для тог, чтобы запустить QLua(Lua) — скрипт в терминале QUIK, в начале нужно поместить его в какую-нибудь папку на Вашем компьютере. Удобно для этого создать новую папку в папке установки терминала, назвать ее, например, «MyLua», или так, как Вам нравится, и хранить в ней все Ваши Lua — скрипты.

Далее, нужно перейти в меню терминала QUIK по пути: «Сервисы» -> «Lua скрипты. «. Откроется окно, как на картинке. В этом окне нужно нажать кнопку «Добавить», далее, найти Ваш скрипт, открыть его. Таким образом он добавится в «Загруженные скрипты», после чего, его нужно выделить в этом окне (строка подсветится) и нажать кнопку «Запустить». Если в скрипте нет ошибок, то слева от его названия вместо «красного квадратика» появится «зеленый треугольник», это означает, что скрипт запущен, если в скрипте обнаружились ошибке, то информация об этом будет выведена в подокне «Ошибки выполнения скрипта» данного окна.

Чтобы остановить выполнение скрипта, в любой момент можно нажать кнопку «Остановить», при условии, что выделена строка с нужным скриптом. После запуска скрипта, Вы можете закрыть окно «Доступные скрипты» соответствующими кнопками.

ВАЖНО . Если Вы запустили скрипт и затем закрыли терминал QUIK, то при последующем запуске терминала скрипт автоматически запустится . Это удобно, например, при использовании скрипта автоматической авторизации.

Если у Вас появились какие-то вопросы, задайте их в комментариях под статьей .

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru