game/gui: fix progressbar

This commit is contained in:
Kazhnuz 2019-03-03 19:39:40 +01:00
parent bb0f452b83
commit f04d40418a
2 changed files with 13 additions and 16 deletions

View File

@ -90,7 +90,7 @@ function gui.newProgressBar(sprite, outerfont, innerfont, label, width)
end
function ProgressBar:new(sprite, outerfont, innerfont, label, width)
local filepath = "assets/gui/progressbar/"
local filepath = "assets/sprites/gui/progressbar/"
self.image = love.graphics.newImage(filepath .. sprite .. ".png")
local backimg = love.graphics.newImage(filepath .. "backbar.png")
self.quad = {}
@ -103,19 +103,18 @@ function ProgressBar:new(sprite, outerfont, innerfont, label, width)
self.outerfont = outerfont
self.innerfont = innerfont
self.frontcanvas = love.graphics.newCanvas(width, 12)
self.backcanvas = love.graphics.newCanvas(ox + width, 12)
self.ox = self.outerfont:getWidth(label) + 2
self.ox = self.outerfount:getWidth("label")
self.frontcanvas = love.graphics.newCanvas(width, 12)
self.backcanvas = love.graphics.newCanvas(self.ox + width, 12)
-- On commence par préparer le canvas avant, qui sera utilisé pour dessiner
-- la partie coloré de la barre de progres
love.graphics.setCanvas( self.frontcanvas )
for i=1, (width-4) do
if (i == 1) then
love.graphics.draw(self.image, self.quad[2], i + 1, 0)
end
for i=1, (self.width-4) do
love.graphics.draw(self.image, self.quad[2], i + 1, 0)
end
love.graphics.draw(self.image, self.quad[1], 0, 0)
@ -125,25 +124,23 @@ function ProgressBar:new(sprite, outerfont, innerfont, label, width)
love.graphics.setCanvas( self.backcanvas )
for i=1, (width-4) do
if (i == 1) then
love.graphics.draw(backimg, self.quad[2], self.ox + i + 1, 0)
end
love.graphics.draw(backimg, self.quad[2], self.ox + i + 1, 0)
end
love.graphics.draw(backimg, self.quad[1], self.ox, 0)
love.graphics.draw(backimg, self.quad[3], self.ox + width - 2, 0)
self.outerfont:set()
love.graphics.printf(label, self.ox, 7, self.ox, "right")
love.graphics.printf(label, 0, -1, self.ox, "left")
love.graphics.setCanvas( )
end
function ProgressBar:draw(x, y, stat, innerlabel)
love.graphics.draw(self.frontcanvas, x - self.ox, y)
love.graphics.setScissor(x, y, self.width * stat, 12)
love.graphics.draw(self.backcanvas, x - self.ox, y)
love.graphics.setScissor(x, y, self.width * stat, 12)
love.graphics.draw(self.frontcanvas, x, y)
love.graphics.setScissor()
end

View File

@ -14,8 +14,8 @@ function PlayerManager:new(scene)
local mediumfont, smallfont
mediumfont = self.scene.assets.fonts["medium"]
smallfont = self.scene.assets.fonts["small"]
self.hpbar = game.gui.newProgressBar("greenbar", mediumfont, smallfont, "HP ", 96)
self.mpbar = game.gui.newProgressBar("bluebar", mediumfont, smallfont, "MP ", 96)
self.hpbar = game.gui.newProgressBar("greenbar", mediumfont, smallfont, "HP", 96)
self.mpbar = game.gui.newProgressBar("bluebar", mediumfont, smallfont, "MP", 96)
self.itembox = game.gui.newTextBox("assets/sprites/gui/textbox/yellowbox.png", 24,24)
end