65 lines
1.5 KiB
Lua
65 lines
1.5 KiB
Lua
|
local Graphics = {}
|
||
|
|
||
|
function Graphics.resetColor()
|
||
|
love.graphics.setColor(1,1,1,1)
|
||
|
end
|
||
|
|
||
|
function Graphics.box(x, y, w, h)
|
||
|
local x = math.floor(x)
|
||
|
local y = math.floor(y)
|
||
|
local w = math.floor(w)
|
||
|
local h = math.floor(h)
|
||
|
local a = a or 1
|
||
|
|
||
|
local r, g, b, a = love.graphics.getColor( )
|
||
|
|
||
|
love.graphics.setColor(r, g, b, 0.3 * a)
|
||
|
love.graphics.rectangle("fill", x, y, w, h)
|
||
|
|
||
|
love.graphics.setColor(r, g, b, a)
|
||
|
love.graphics.rectangle("line", x, y, w, h)
|
||
|
end
|
||
|
|
||
|
function Graphics.print(text, x, y, align, r, sx, sy, ox, oy, kx, ky)
|
||
|
local width
|
||
|
local font = love.graphics.getFont()
|
||
|
width = font:getWidth(text)
|
||
|
|
||
|
if align == "center" then
|
||
|
width = (width/2)
|
||
|
elseif align == "right" then
|
||
|
width = width
|
||
|
else
|
||
|
width = 0
|
||
|
end
|
||
|
|
||
|
love.graphics.print(text, x - (width), y, r, sx, sy, ox, oy, kx, ky)
|
||
|
end
|
||
|
|
||
|
function Graphics.printWithSpacing(text, spacing, align, x, y, r, sx, sy, ox, oy, kx, ky)
|
||
|
-- DO NOT USE THIS FUNCTION IN A "UPDATE" FUNCTION !
|
||
|
-- it's pretty heavy to use as it use a loop to get every character in a text
|
||
|
local font = love.graphics.getFont()
|
||
|
local xx = 0
|
||
|
local lenght = string.len(text)
|
||
|
local basewidth = font:getWidth(text)
|
||
|
local width = basewidth + (spacing * lenght)
|
||
|
|
||
|
if align == "center" then
|
||
|
width = (width/2)
|
||
|
elseif align == "right" then
|
||
|
width = width
|
||
|
else
|
||
|
width = 0
|
||
|
end
|
||
|
|
||
|
for i=1, lenght do
|
||
|
local char = string.sub(text, i, i)
|
||
|
pos = math.floor(x + xx - width)
|
||
|
love.graphics.print(char, pos, y)
|
||
|
xx = xx + font:getWidth(char) + spacing
|
||
|
end
|
||
|
end
|
||
|
|
||
|
return Graphics
|