function love.load() fps = 30 upTime = love.timer.getTime() nextTime = upTime windowProfile = { mode = { width = 256, height = 240, }, scale = { x = 2, y = 2, }, title = "GNU & Bola - The libre beat'em up game", } love.graphics.setBackgroundColor(0, 232, 216) love.graphics.setDefaultFilter('nearest', 'nearest') love.window.setMode(windowProfile.mode.width * windowProfile.scale.x, windowProfile.mode.height * windowProfile.scale.y) love.window.setTitle(windowProfile.title) button = require 'scripts.player.1.button' sprites = require 'scripts.sprites.sprites' character = { bola = require 'scripts.bola.bola' } end function love.keypressed(key) if key == button.quit then love.event.quit() end end function love.update(dt) nextTime = nextTime + (1 / fps) character.bola.stand.start = character.bola.stand.start + (dt * character.bola.stand.fps) character.bola.walk.start = character.bola.walk.start + (dt * character.bola.walk.fps) frames = { bola = require 'scripts.bola.frames' } game = { animation = function(start, frames) if math.floor(start) > frames then start = 1 end return start end } character.bola.stand.start = game.animation(character.bola.stand.start, frames.bola.stand) character.bola.walk.start = game.animation(character.bola.walk.start, frames.bola.walk) transform = { bola = { origin = { y = character.bola.origin.y } } } if love.keyboard.isDown(button.left) then character.bola.acceleration = character.bola.acceleration + dt if character.bola.position.x >= character.bola.origin.x then if character.bola.acceleration < 3 then character.bola.position.x = character.bola.position.x - (character.bola.speed * dt) - character.bola.acceleration else character.bola.position.x = character.bola.position.x - (character.bola.speed * dt) - 3 end end quad = character.bola.walk[math.floor(character.bola.walk.start)] character.bola.scale.x = -1 elseif love.keyboard.isDown(button.right) then character.bola.acceleration = character.bola.acceleration + dt if character.bola.position.x <= windowProfile.mode.width - character.bola.origin.x then if character.bola.acceleration < 3 then character.bola.position.x = character.bola.position.x + (character.bola.speed * dt) + character.bola.acceleration else character.bola.position.x = character.bola.position.x + (character.bola.speed * dt) + 3 end end quad = character.bola.walk[math.floor(character.bola.walk.start)] character.bola.scale.x = 1 elseif love.keyboard.isDown(button.down) then character.bola.acceleration = 0 transform.bola.origin.y = character.bola.origin.y - character.bola.origin.y quad = character.bola.crouch[1] else character.bola.acceleration = 0 quad = character.bola.stand[math.floor(character.bola.stand.start)] end end function love.draw() local currentTime = love.timer.getTime() if nextTime <= currentTime then nextTime = currentTime return end love.timer.sleep(nextTime - currentTime) love.graphics.scale(windowProfile.scale.x, windowProfile.scale.y) love.graphics.print('FPS: ' .. love.timer.getFPS(), 0, 0) love.graphics.draw( sprites.bola.image, quad, character.bola.position.x, character.bola.position.y, character.bola.orientation, character.bola.scale.x, character.bola.scale.y, character.bola.origin.x, transform.bola.origin.y ) end