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

Материал из wiki.appsalutecreator.com
Перейти к: навигация, поиск
Строка 3: Строка 3:
  
 
Официальный сайт Lua - http://www.lua.org/home.html.
 
Официальный сайт Lua - http://www.lua.org/home.html.
 +
 +
http://tylerneylon.com/a/learn-lua/
 +
 +
http://docs.madewithmarmalade.com/display/MD/Introduction+to+Lua
  
 
== Введение ==
 
== Введение ==
Строка 30: Строка 34:
 
Рассмотрим пример использования скрипта для написания программы Калькулятор
 
Рассмотрим пример использования скрипта для написания программы Калькулятор
  
[[Файл:Project.png]]
+
[[Файл:Project.png]]  
  
 
Создаем машину состояний с именем "control", в ней создаем скрипт obj_control.lua. В функции init () объявляем переменные: [[Файл:self.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 записываем машине соответствующий параметр и вызываем состояние:
 
По тапу на кнопки 0-9 записываем машине соответствующий параметр и вызываем состояние:
  
 
[[Файл:0digit.png]]
 
[[Файл:0digit.png]]
 +
 +
При вызове состояния pressedDigit скриптом запускается соответствующая функция:
 +
 +
Объявляем локальную переменную local digit, в которую будем записывать значение параметра pressed (записанное по тапу на кнопку).
 +
 +
[[Файл:Presseddigit.png]]
 +
 +
 +
 +
ID("control") - функция, которая возвращает ID объекта с именем "control" - сделано для удобства переноса скриптов из одного проекта в другой, не подвязываясь к ID объекта. НО, при импорте скрипта в другой проект важно проверять наличие объектов с таким же именем. Их быть не должно! В противном случае при сохранении проекта в редакторе будет выдаваться ошибка  [[Файл:Errorscript.png]]

Версия 16:20, 12 февраля 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

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

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

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