Уроки по Love и Lua. Урок 0. Введение.

Содержание:
Всех приветствую на очередном уроке по Love. Сегодня мы рассмотрим структуру программы,а именно стандартные события(функции) в Love. Для начала откроем редактор и откроем наш файл main.lua .Начнем мы с самых стандартных функций.
 function love.load() --Функция,вызывающаяся в первый кадр игры.

end
Данная функция вызывается в начале игры.С помощью нее мы можем загрузить необходимые игровые объекты и т.п. Вот небольшой пример:

numberA = 0;
 function love.load() 
  numberA = 5 + 5;
end
Идем дальше. Функция love.update() вызывается на каждый кадр и в целом в данной функции и выполняется вся игровая механика.Вот пример

mousePosX = 0;
mousePosY = 0;
 function love.update() 

mousePosX,mousePosY = love.mouse.getPosition(); --Текущие координаты курсора в окне программы
end
Идем дальше.Третья основная функция - это love.draw() .Данная функция отвечает за отрисовку всего графического контента(будь это кнопки или персонаж).Вот пример:

 function love.draw()

         love.graphics.cirlce("line",100,100,10,25); --Рисует кружок
end
Это были три основные функции. Теперь об остальных.Функция love.keyreleased() работает с нажатием кнопки на клавиатуре.
 function love.keyreleased(key)  
    
          if key == "escape" then --Если нажата кнопка Esc(Escape),то окно игры закроется.
    love.event.quit();
end

end
В данном случае здесь имеется один параметр key .Он хранит в себе KeyConstant,то есть кнопки на клавиатуре, а в самой функции можно через if инструкцию сравнить эту клавишу с нажатой клавишей.
Вот здесь список этих констант: love2d.org/wiki/KeyConstant
Есть похожая функция love.keypressed() .В данном случае она выполняет аналогичную функцию что и love.keyreleased() ,только она проверяет,зажата ли клавиша(пример приводить не буду и так понятно что она делает).
Есть аналогичные события как под мышь(константы: love2d.org/wiki/MouseConstant само событие: love2d.org/wiki/love.mousereleased ) так и под геймпад(love2d.org/wiki/love.gamepadreleased).
Есть главное событие love.run() ,которая не обязательна для создания(она создаться по умолчанию). В ней создается цикл в котором имеется множество if инструкций.Именно это событие и запускает такие события как love.update() или love.load() .
И последнее событие - это love.textinput() ,в котором можно вводить какой-то текст.Для конкретики вот пример:
function love.load()
    text = " "
end
 
function love.textinput(t)
    text = text .. t 
end
Вот собственно и все. Также есть у нас и второй файл conf ,но в нем мы работаем с одним событием - это love.conf(configuration) .В данном случае у нас есть также один параметр,с помощью него мы и меняем разные параметры окна.Примерчик:
function love.conf(configuration)

 configuration.window.title = "My First Game"; --Задает заголовок программы       
   configuration.window.icon = nil;       --Иконка программы
   configuration.window.width = 800;   --Ширина окна           
    configuration.window.height = 600;         --Высота окна

end 
Вот собственно и все.В следующем уроке мы будем разбирать Love API.

Содержание