Lua — различия между версиями

Материал из wiki.appsalutecreator.com
Перейти к: навигация, поиск
(Основные функции)
Строка 29: Строка 29:
  
 
[[Файл:Func.png]]
 
[[Файл:Func.png]]
 +
 +
 +
'''Добавлены функции (вытягивание данных из текстовой базы):'''
 +
 +
viewer.getResFromTxtDB(txtID,tp,defValue)
 +
 +
viewer.getStrFromTxtDB(txtID,sense,defValue)
 +
 +
С их помощью можно вытянуть иконку из текстовой базы и вытянуть текст по текущей локализации.
 +
 +
'''Так же частично доступна библиотека os:'''
 +
 +
date
 +
 +
difftime
 +
 +
time
 +
 +
Она позволит нам форматировать время.
  
 
== Пример использования ==
 
== Пример использования ==

Версия 10:26, 15 февраля 2016

Lua - скриптовый язык программирования.

Официальный сайт Lua - http://www.lua.org/home.html.

http://tylerneylon.com/a/learn-lua/

http://docs.madewithmarmalade.com/display/MD/Introduction+to+Lua

Введение

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

Используется для удобства вычислений и увеличения скорости исполнения кода.

Создание скрипта

В машине состояний, выбрав добавляемое свойство, есть возможность создать или открыть уже существующий скрипт (edit script):

Edit script.png

Программа - интерпретатор для работы со скриптами Lua - ZeroBrane Studio: http://studio.zerobrane.com/

Основные функции

При создании скриптов в первой вкладке всегда создается файл viewer.lua, где перечислен список доступных функций и параметров.

Существует четыре вида функций для взаимодействия скрипта с машиной состояний:

Func.png


Добавлены функции (вытягивание данных из текстовой базы):

viewer.getResFromTxtDB(txtID,tp,defValue)

viewer.getStrFromTxtDB(txtID,sense,defValue)

С их помощью можно вытянуть иконку из текстовой базы и вытянуть текст по текущей локализации.

Так же частично доступна библиотека os:

date

difftime

time

Она позволит нам форматировать время.

Пример использования

Рассмотрим пример использования скрипта для написания программы Калькулятор

Project.png

Создаем машину состояний с именем "control", в ней создаем скрипт obj_control.lua. В функции init () объявляем переменные: Self.png

 self.res - результат вычислений
 self.valLeft - переменная, в которую записываем первое число
 self.valRight - переменная, в котрую записываем второе число
 self.valRightExiste = false
 self.operatorSelected - флаг для ввода оператора (+,-,/,*), который записываем в true, если ввели первую переменную.
 self.operator - ввод самого оператора
 self.txt - вывод вычислений в строку

По тапу на кнопки 0-9 записываем машине соответствующий параметр и вызываем состояние:

0digit.png

При вызове состояния pressedDigit скриптом запускается соответствующая функция:

Объявляем локальную переменную local digit, в которую будем записывать значение параметра pressed (записанное по тапу на кнопку).

Presseddigit.png


ID("control") - функция, которая возвращает ID объекта с именем "control" - сделано для удобства переноса скриптов из одного проекта в другой, не подвязываясь к ID объекта. НО, при импорте скрипта в другой проект важно проверять наличие объектов с таким же именем. Их быть не должно! В противном случае при сохранении проекта в редакторе будет выдаваться ошибка Errorscript.png