From 7c0b15d60221d01647554bd231c164842b9929ca Mon Sep 17 00:00:00 2001 From: Micaiah Parker Date: Wed, 4 Nov 2020 12:01:44 -0500 Subject: [PATCH] Added error checking and offsets for flipping sprites --- src/spritesheet.lua | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/src/spritesheet.lua b/src/spritesheet.lua index 3c01f8e..fd30bbf 100644 --- a/src/spritesheet.lua +++ b/src/spritesheet.lua @@ -1,25 +1,33 @@ local module = {} function module.create(file, rows, columns) - local spritesheet = { - image=love.graphics.newImage(image), - quads={} - } + if columns == nil then columns = 1 end - if image == nil then + if love.filesystem.getInfo(file) == nil then love.errorhandler("file: "..file.." was not found.") end + image = love.graphics.newImage(file) + + local spritesheet = { + image=image, + quads={} + } + local width, height = image:getWidth()/rows, image:getHeight()/columns + spritesheet.width = width + spritesheet.height = height for r = 0, rows-1 do - for c = 0, rows-1 do - table.insert(spritesheet.quads, love.graphics.newQuad(width*(r-1),height*(c-1),width,height,image:getDimensions())) + for c = 0, columns-1 do + table.insert(spritesheet.quads, love.graphics.newQuad(width*r,height*c,width,height,image:getDimensions())) end end - function spritesheet:draw(frame, x, y) - love.graphics.draw(self.quads[frame], x, y) + function spritesheet:draw(frame, x, y, sx, sy, ox, oy) + if sx == -1 then ox = self.width end + if sy == -1 then oy = self.height end + love.graphics.draw(self.image, self.quads[frame], x, y, 0, sx, sy, ox, oy) end return spritesheet