Всем привет! Сегодня я хотел бы вам рассказать о интересном языке программирования,о Lua .Расскажу собственно о самом языке и изучим основы программирования,а в дальнейшем напишем простую игру на нем,используя фреймворк под названием Love2D .
О Lua
Скриптовый язык программирования, разработанный в подразделении Tecgraf. Интерпретатор языка является свободно распространяемым, с открытыми исходными текстами на языке Си.
По возможностям и реализации, язык ближе всего к JavaScript, однако Lua отличается более мощными и гораздо более гибкими конструкциями. Хотя Lua не содержит понятия класса и объекта в явном виде, механизмы объектно-ориентированного программирования, включая множественное наследование, легко реализуются с использованием метатаблиц, которые также отвечают за перегрузку операций и т. п. Реализуемая модель объектно-ориентированного программирования — прототипная (как и в JavaScript).
Основы Lua
Лично я для такого дела скачаю IDE под названием ZeroBrane Studio и во всех статьях буду писать,используя данную среду. Итак. Синтаксис данного языка очень прост и в каком-то плане похож на Python,однако это совершенно разные языки программирования. Пожалуй начнем с объявления переменных:
--Это комментарий
numberI = 10 --Целочисленная переменная
numberF = 5.5 --Переменная с плавающей точкой
stringS = 'Hello,World!' --Переменная,содержащая символы
wat = nil --Неопределенная переменная(Может хранить число или символы)
myArray = {numberI,numberF} --Массив с двумя элементами
local localVar = 12 --Локальная переменная
print(stringS) --Вывод в консоль
Все довольно просто.Теперь разберемся по подробнее с некоторыми переменными. Локальная переменная localVar в примере объявлена не совсем правильно. По стандарту, локальные переменные должны находится в теле какой-то конструкции или функции,в общем не должны быть на ряду с другими переменными. Локальные переменные,как правило,предназначены для работы только внутри какой либо функции,к примеру в теле цикла. Массив myArray объявлен правильно,однако хочу предупредить что индекс первого элемента начинается не с 0 ,а с 1 .
Теперь разберемся с конструкциями if else и циклами while и for. Вот пример If конструкции:
--IF конструкция
number = 5
if number == 5 then --Если переменная равна пяти,то...
print("Number: " .. number) --Выведет слово + число
else --Иначе
print("Error")
end --Конец if конструкции
Хочу заметить что оператор сложения не + , а .. . А вот циклы:
--Циклы While и For
number = 0
while number < 10 do --Пока переменная меньше 10-ти...
number = number + 1 --Складываем
print(number) --Выводим
end
for number = 9,19 do --Выполнять цикл,пока не достигнет >19
number = number + 1
print(number)
end
Примечание: Нельзя складывать переменную вот так: number + 1. Необходимо присваивать значение обязательно т.е. number = number + 1.
Теперь о таблицах. На самом деле массив,который мы создавали в самом начале-это таблица(по крайней мере ее так принято называть).Вот пример:
--Таблицы
myTable = {} --Разряженный массив (у которого есть не все элементы)
myTable["Value 1"] = 1 --Элемент Value 1 со значением 1
myTable["Value 256"] = 256 --Элемент Value 256 со значением 256
myTable["Str"] = "Hi"
print(myTable["Value 1"]) --Выведет 1
print(myTable["Str"]) --Выведет Hi
Таблица — это очень изящная структура данных, она сочетает в себе свойства массива, хэш-таблицы («ключ»-«значение»), структуры, объекта.
Теперь функции,пишутся они так:
--Функции
a = function(x)
return x * 2
end -- функция, умножающая на 2
function(x)
return x + 1
end -- функция, увеличивающая на 1
Функции языка позволяют принимать несколько аргументов, и возвращать несколько аргументов. Так аргументы, значения которых не указаны явно, считаются равными nil.
Итак. В этой статье я рассказал о самых,самых основах Lua. Далее я напишу серию статей о создании собственной игры на Lua.А пока что все.
По крайней мере остались такие вопросы, как: