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

Материал из wiki.appsalutecreator.com
Перейти к: навигация, поиск
Строка 1: Строка 1:
 
{{TOC right}}
 
{{TOC right}}
 
[[Lua]] - скриптовый язык программирования.
 
[[Lua]] - скриптовый язык программирования.
 
Официальный сайт Lua - http://www.lua.org/home.html.
 
 
http://tylerneylon.com/a/learn-lua/
 
 
http://docs.madewithmarmalade.com/display/MD/Introduction+to+Lua
 
  
 
== Введение ==
 
== Введение ==
Строка 16: Строка 10:
 
== Создание скрипта ==
 
== Создание скрипта ==
  
В машине состояний, выбрав добавляемое свойство, есть возможность создать или открыть уже существующий скрипт (edit script):
+
В машине состояний, выбрав добавляемое свойство, создаем или откріваем уже существующий скрипт (edit script):
  
 
[[Файл:Edit_script.png]]
 
[[Файл:Edit_script.png]]
 
Программа - интерпретатор для работы со скриптами Lua - ZeroBrane Studio: http://studio.zerobrane.com/
 
  
 
== Основные функции ==
 
== Основные функции ==
Строка 53: Строка 45:
 
'''print(e1, e2, ...)'''
 
'''print(e1, e2, ...)'''
 
Печатает значения аргументов. В конце выводится перевод строки. Эта функция не предназначена для форматного вывода, а только для быстрого (отладочного) вывода значений переменных.
 
Печатает значения аргументов. В конце выводится перевод строки. Эта функция не предназначена для форматного вывода, а только для быстрого (отладочного) вывода значений переменных.
 +
  
 
'''В app.icf при установке'''
 
'''В app.icf при установке'''
Строка 83: Строка 76:
 
[[Файл:0digit.png]]
 
[[Файл:0digit.png]]
  
При вызове состояния pressedDigit скриптом '''вызываем функцию 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):

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


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

Литература

Официальный сайт 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/