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

Материал из wiki.appsalutecreator.com
Перейти к: навигация, поиск
Строка 95: Строка 95:
  
 
[[Файл:Res2.png]]
 
[[Файл:Res2.png]]
 +
 +
== Пример реализации ==
  
 
[http://fs5.absolutist.com/files/wikisample/proj_LUA.zip Download]
 
[http://fs5.absolutist.com/files/wikisample/proj_LUA.zip Download]
Строка 100: Строка 102:
  
 
[[Category:Main objects]]
 
[[Category:Main objects]]
 
  
 
== Литература ==
 
== Литература ==
  
Официальный сайт Lua - http://www.lua.org/home.html
+
1. Официальный сайт Lua - http://www.lua.org/home.html
  
http://tylerneylon.com/a/learn-lua/
+
2. http://tylerneylon.com/a/learn-lua/
  
http://docs.madewithmarmalade.com/display/MD/Introduction+to+Lua
+
3. http://docs.madewithmarmalade.com/display/MD/Introduction+to+Lua
  
Программа - интерпретатор для работы со скриптами Lua - ZeroBrane Studio: http://studio.zerobrane.com/
+
4. Программа - интерпретатор для работы со скриптами Lua - ZeroBrane Studio: http://studio.zerobrane.com/

Версия 11:46, 15 февраля 2016

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

Введение

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

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

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

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

Edit script.png

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

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

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

Func.png


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

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


Self2.png

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

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

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

Project.png

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

Self.png

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

0digit.png

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

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

Presseddigit.png

2. Аналогично по тапу на кнопки операторов записываем параметр и вызываем функцию pressedOperator():

Operator.png

Oper.png

3. Вызов функции pressedRavnо(), вычисление и вывод результата:

Ravno.png

Res2.png

Пример реализации

Download

Литература

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

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

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

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