function love.load() fps = 30 upTime = love.timer.getTime() nextTime = upTime windowProfile = { mode = { width = 256, height = 240, }, title = "GNU & Bola - The libre beat 'em up game", } love.graphics.setBackgroundColor(0, 232, 216) love.window.setMode(windowProfile.mode.width, windowProfile.mode.height) love.window.setTitle(windowProfile.title) button = { left = 'a', right = 'd', up = 'w', down = 's', button0 = 'j', button1 = 'k', select = 'g', start = 'h', quit = 'escape', } sprites = { bola = { image = love.graphics.newImage('metaspritessheet0_color0_alpha.png'), x = 24, y = 32, } } character = { bola = { position = { x = windowProfile.mode.width / 2, y = windowProfile.mode.height / 2, }, origin = { x = sprites.bola.x / 2, y = sprites.bola.y / 2, }, acceleration = 0, speed = 200, spriteStand = { love.graphics.newQuad(sprites.bola.x * 0, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()), love.graphics.newQuad(sprites.bola.x * 1, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()), love.graphics.newQuad(sprites.bola.x * 2, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()), love.graphics.newQuad(sprites.bola.x * 1, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()), love.graphics.newQuad(sprites.bola.x * 0, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()), love.graphics.newQuad(sprites.bola.x * 3, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()), love.graphics.newQuad(sprites.bola.x * 4, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()), love.graphics.newQuad(sprites.bola.x * 3, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()), love.graphics.newQuad(sprites.bola.x * 0, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()), love.graphics.newQuad(sprites.bola.x * 5, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()), love.graphics.newQuad(sprites.bola.x * 6, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()), love.graphics.newQuad(sprites.bola.x * 5, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()), love.graphics.newQuad(sprites.bola.x * 0, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()), love.graphics.newQuad(sprites.bola.x * 7, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()), love.graphics.newQuad(sprites.bola.x * 8, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()), love.graphics.newQuad(sprites.bola.x * 7, sprites.bola.y * 0, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()), start = 1, fps = 9, }, spriteWalk = { love.graphics.newQuad(sprites.bola.x * 0, sprites.bola.y * 1, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()), love.graphics.newQuad(sprites.bola.x * 1, sprites.bola.y * 1, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()), love.graphics.newQuad(sprites.bola.x * 2, sprites.bola.y * 1, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()), love.graphics.newQuad(sprites.bola.x * 1, sprites.bola.y * 1, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()), love.graphics.newQuad(sprites.bola.x * 0, sprites.bola.y * 1, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()), love.graphics.newQuad(sprites.bola.x * 3, sprites.bola.y * 1, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()), love.graphics.newQuad(sprites.bola.x * 4, sprites.bola.y * 1, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()), love.graphics.newQuad(sprites.bola.x * 3, sprites.bola.y * 1, sprites.bola.x, sprites.bola.y, sprites.bola.image:getDimensions()), start = 1, fps = 9, }, } } 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.spriteStand.start = character.bola.spriteStand.start + (dt * character.bola.spriteStand.fps) character.bola.spriteWalk.start = character.bola.spriteWalk.start + (dt * character.bola.spriteWalk.fps) frames = { bola = { spriteStand = # character.bola.spriteStand, spriteWalk = # character.bola.spriteWalk, } } while character.bola.spriteStand.start >= frames.bola.spriteStand do character.bola.spriteStand.start = character.bola.spriteStand.start - (frames.bola.spriteStand - 1) end while character.bola.spriteWalk.start >= frames.bola.spriteWalk do character.bola.spriteWalk.start = character.bola.spriteWalk.start - (frames.bola.spriteWalk - 1) end animation = { bola = { spriteStand = math.floor(character.bola.spriteStand.start), spriteWalk = math.floor(character.bola.spriteWalk.start), } } end function love.draw() local currentTime = love.timer.getTime() if nextTime <= currentTime then nextTime = currentTime end love.timer.sleep(nextTime - currentTime) love.graphics.print('FPS: ' .. love.timer.getFPS(), 0, 0) love.graphics.draw(sprites.bola.image, character.bola.spriteWalk[animation.bola.spriteWalk], character.bola.position.x, character.bola.position.y, 0, 1, 1, character.bola.origin.x, character.bola.origin.y) end