src/game: add a gui module with a border generator
This commit is contained in:
parent
6a28069680
commit
7df5f0bdf6
2 changed files with 41 additions and 0 deletions
BIN
sonic-radiance.love/assets/gui/borders.png
Normal file
BIN
sonic-radiance.love/assets/gui/borders.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 425 B |
41
sonic-radiance.love/game/modules/gui/init.lua
Normal file
41
sonic-radiance.love/game/modules/gui/init.lua
Normal file
|
@ -0,0 +1,41 @@
|
|||
local gui = {}
|
||||
|
||||
function gui.newBorder(width, height, middlePosition)
|
||||
local tileset = love.graphics.newImage("assets/gui/borders.png")
|
||||
local tilequad = {}
|
||||
local w, h = tileset:getDimensions()
|
||||
tilequad[1] = love.graphics.newQuad(0, 0, 20, 20, w, h)
|
||||
tilequad[2] = love.graphics.newQuad(20, 0, 20, 20, w, h)
|
||||
tilequad[3] = love.graphics.newQuad(40, 0, 20, 20, w, h)
|
||||
tilequad[4] = love.graphics.newQuad(60, 0, 20, 20, w, h)
|
||||
|
||||
local Texture = love.graphics.newCanvas(width, height)
|
||||
|
||||
love.graphics.setCanvas(Texture)
|
||||
utils.graphics.resetColor()
|
||||
|
||||
local height = math.ceil(height / 20)
|
||||
local width = math.ceil(width / 20)
|
||||
|
||||
for i=1, width do
|
||||
if i < middlePosition then
|
||||
love.graphics.draw(tileset, tilequad[1], (i-1) * 20, 0)
|
||||
elseif (i == middlePosition) then
|
||||
love.graphics.draw(tileset, tilequad[2], (i-1) * 20, 0)
|
||||
else
|
||||
love.graphics.draw(tileset, tilequad[3], (i-1) * 20, 0)
|
||||
end
|
||||
|
||||
if height > 1 then
|
||||
for j = 2, height do
|
||||
love.graphics.draw(tileset, tilequad[4], (i-1) * 20, (j-1) * 20)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
love.graphics.setCanvas( )
|
||||
|
||||
return Texture
|
||||
end
|
||||
|
||||
return gui
|
Loading…
Reference in a new issue