local coords = require"common.coords" -- in screen units local screen_width, screen_height = love.graphics.getDimensions() -- zoom is screen pixels per world unit local Camera = {} Camera.__index = Camera function Camera.make(pos,zoom) pos = pos or coords.Pos.make(0,0) zoom = zoom or 30 return setmetatable({pos=pos,zoom=zoom},Camera) end function Camera.apply_trans(self) love.graphics.origin() -- centre (0,0) in the middle of the screen love.graphics.translate(screen_width/2,screen_height/2) -- apply camera transformations love.graphics.scale(self.zoom) love.graphics.translate(-self.pos.x,-self.pos.y) end return {Camera=Camera}