Уроки по Love и Lua. Урок 1. Структура программы.
Всех приветствую на очередном уроке по 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 инструкцию сравнить эту клавишу с нажатой клавишей.
Вот здесь список этих констант: http://love2d.org/wiki/KeyConstant
Есть похожая функция love.keypressed() .В данном случае она выполняет аналогичную функцию что и love.keyreleased() ,только она проверяет,зажата ли клавиша(пример приводить не буду и так понятно что она делает).
Есть аналогичные события как под мышь(константы: http://love2d.org/wiki/MouseConstant само событие: http://love2d.org/wiki/love.mousereleased ) так и под геймпад( http://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.
Смотрите также:
Комментарии
Здесь еще никто не оставил комментарий
CollectableItemData.cs
[CreateMenuItem(fileName = "newItem", menuName = "Data/Items/Collectable", order = 51]