Lua — различия между версиями
Evereskun (обсуждение | вклад) |
Evereskun (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
{{TOC right}} | {{TOC right}} | ||
[[Lua]] - скриптовый язык программирования. | [[Lua]] - скриптовый язык программирования. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== Введение == | == Введение == | ||
Строка 16: | Строка 10: | ||
== Создание скрипта == | == Создание скрипта == | ||
− | В машине состояний, выбрав добавляемое свойство, | + | В машине состояний, выбрав добавляемое свойство, создаем или откріваем уже существующий скрипт (edit script): |
[[Файл:Edit_script.png]] | [[Файл:Edit_script.png]] | ||
− | |||
− | |||
== Основные функции == | == Основные функции == | ||
Строка 53: | Строка 45: | ||
'''print(e1, e2, ...)''' | '''print(e1, e2, ...)''' | ||
Печатает значения аргументов. В конце выводится перевод строки. Эта функция не предназначена для форматного вывода, а только для быстрого (отладочного) вывода значений переменных. | Печатает значения аргументов. В конце выводится перевод строки. Эта функция не предназначена для форматного вывода, а только для быстрого (отладочного) вывода значений переменных. | ||
+ | |||
'''В app.icf при установке''' | '''В app.icf при установке''' | ||
Строка 83: | Строка 76: | ||
[[Файл:0digit.png]] | [[Файл:0digit.png]] | ||
− | При вызове состояния pressedDigit | + | При вызове состояния pressedDigit скрипт '''вызывает функцию pressedDigit():''' |
Объявляем локальную переменную local digit, в которую будем записывать значение параметра pressed (записанное по тапу на кнопку). | Объявляем локальную переменную local digit, в которую будем записывать значение параметра pressed (записанное по тапу на кнопку). | ||
Строка 100: | Строка 93: | ||
[[Файл:Res2.png]] | [[Файл:Res2.png]] | ||
+ | |||
+ | == Литература == | ||
+ | |||
+ | Официальный сайт Lua - http://www.lua.org/home.html | ||
+ | |||
+ | http://tylerneylon.com/a/learn-lua/ | ||
+ | |||
+ | http://docs.madewithmarmalade.com/display/MD/Introduction+to+Lua | ||
+ | |||
+ | Программа - интерпретатор для работы со скриптами Lua - ZeroBrane Studio: http://studio.zerobrane.com/ |
Версия 11:11, 15 февраля 2016
Lua - скриптовый язык программирования.
Введение
Lua - динамически типизированный язык, предназначенный для использования в качестве расширения или в качестве скриптового языка, и при этом достаточно компактный, чтобы поместиться на различных исполняющих платформах. Он поддерживает небольшое количество структур данных, такие как логические значения, числа (по умолчанию — двойной точности с плавающей точкой), а также строки.
Используется для удобства вычислений и увеличения скорости исполнения кода.
Создание скрипта
В машине состояний, выбрав добавляемое свойство, создаем или откріваем уже существующий скрипт (edit script):
Основные функции
При создании скриптов в первой вкладке всегда создается файл viewer.lua, где перечислен список доступных функций и параметров.
Существует четыре вида функций для взаимодействия скрипта с машиной состояний:
Добавлены функции (вытягивание данных из текстовой базы):
viewer.getResFromTxtDB(txtID,tp,defValue)
viewer.getStrFromTxtDB(txtID,sense,defValue)
С их помощью можно вытянуть иконку из текстовой базы и вытянуть текст по текущей локализации.
Так же частично доступна библиотека os:
date
difftime
time
Она позволит нам форматировать время.
Отладка
print(e1, e2, ...) Печатает значения аргументов. В конце выводится перевод строки. Эта функция не предназначена для форматного вывода, а только для быстрого (отладочного) вывода значений переменных.
В app.icf при установке
[GameTrace]
Level="Verbose"
В логе у нас появятся данные из скриптов со всеми операциями:
D/IScript IScript::callScriptMethod() callScriptMethod: "lottery_scpt:init"
D/IScript viewer_getResFromTxtDB() viewer.getResFromTxtDB(5670,0,666)->666
ID("control") - функция, которая возвращает ID объекта с именем "control" - сделано для удобства переноса скриптов из одного проекта в другой, не подвязываясь к ID объекта. НО, при импорте скрипта в другой проект важно проверять наличие объектов с таким же именем. Их быть не должно! В противном случае при сохранении проекта в редакторе будет выдаваться ошибка
Пример использования
Рассмотрим пример использования скрипта для написания программы Калькулятор
Создаем машину состояний с именем "control", в ней создаем скрипт obj_control.lua. В функции init () объявляем переменные:
1. По тапу на кнопки 0-9 записываем машине соответствующий параметр и вызываем состояние pressedDigit:
При вызове состояния pressedDigit скрипт вызывает функцию pressedDigit():
Объявляем локальную переменную local digit, в которую будем записывать значение параметра pressed (записанное по тапу на кнопку).
2. Аналогично по тапу на кнопки операторов записываем параметр и вызываем функцию pressedOperator():
3. Вызов функции pressedRavnо(), вычисление и вывод результата:
Литература
Официальный сайт Lua - http://www.lua.org/home.html
http://tylerneylon.com/a/learn-lua/
http://docs.madewithmarmalade.com/display/MD/Introduction+to+Lua
Программа - интерпретатор для работы со скриптами Lua - ZeroBrane Studio: http://studio.zerobrane.com/