Сегодня я решил написать урок по созданию самого легкого платформера, давайте начнем сразу.
Создаем наш файл main.lua и вписываем туда нашу основу.
Код
function love.load() --букава end
function love.update() --буковки end
function love.draw() --буковки end
Вот так, вы уже знаете что означают эти строчки. Теперь в love.load мы пишем это: (У нас в папочке должен лежать спрайт нашего игрока, у меня квадрат 32*32)
Код
player = { x = 0, -- х героя y = 0, -- у героя image = love.graphics.newImage("player.png"), --картинка y_velocity = 0, -- сила по y } gravity = 600 -- сила гравитации jump_height = 300 -- высота прыжка
Тут мы создаем массив player в котором описываем его переменные и изображение. minW, minH используют функцию получения ширины и высоты экрана, это можно запомнить, местами пригодится.
Теперь мы узнаем функцию love.keypressed(key), пишем уже после всех load, update и draw это:
Код
function love.keypressed(key) if key == "w" then if player.y_velocity == 0 then -- мы пробуем узнать, на земле ли герой, если да - прыгаем player.y_velocity = jump_height end end
Эта функция проверяет нажатие клавиши W, и если она нажата, выполняет еще одну проверку. Теперь идем в love.update, вот тут вам нужно будет немного поковырять самому, ибо не должен же я абсолютно все разжевывать :]
Код
function love.update(dt) if love.keyboard.isDown("a") then player.x = player.x - 150*dt end if love.keyboard.isDown("d") then player.x = player.x + 150*dt end --тут движение, это мы знаем if player.y_velocity ~= 0 then -- если мы прыгаем player.y = player.y + player.y_velocity * dt -- изменяем y нашего персонажа player.y_velocity = player.y_velocity - gravity * dt if player.y < 0 then -- мы опять на земле player.y_velocity = 0 -- сила равна 0 player.y = 0 -- у = 0 end end end end
Покопайтесь в этом коде сами, тут все просто :] Теперь мы должны отрисовать землю и нашего героя, идем в love.draw
Код
function love.draw()
love.graphics.rectangle("fill", 0, winH / 2, winW, winH / 2)-- рисуем землю, используя наши перемнные minW и minH рисуем ее посредине экрана love.graphics.translate(winW / 2, winH / 2) -- вам это лучше не знать :]
love.graphics.draw(player.image, player.x, -player.y) -- рисуем героя end
Запускаем и радуемся ^^
Прошу простить, что код не очень хорошо прокомментирован, но в тоже время вы сами должны ковырять его и ваших знаний Lua, должно быть достаточно что бы понять это. Всем удачи!
Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:
Игровые объявления и предложения:
Если вас заинтересовал материал «Второй урок по LOVE2D. Самый простой платформер», и вы бы хотели прочесть что-то на эту же тему, то вы можете воспользоваться списком схожих материалов ниже. Данный список сформирован автоматически по тематическим меткам раздела.
Предлагаются такие схожие материалы:
Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями.