refactor(levels): let the player manage itself its HUD

This commit is contained in:
Kazhnuz 2019-06-17 12:16:32 +02:00
parent 5445d619aa
commit fd986f6b30
2 changed files with 44 additions and 28 deletions

View File

@ -25,6 +25,7 @@ function Player:new(world, x, y, playerID)
self:lifeInit()
self:initWeapon()
self:initStats()
self:initHUD()
self.currentWeapon = 1
@ -224,6 +225,48 @@ self:setSpriteScallingX(self.direction)
end
end
-- HUD FUNCTIONS
-- All functions related to the HUD
function Player:initHUD()
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.itembox = game.gui.newTextBox("assets/sprites/gui/textbox/yellowbox.png", 24,24)
end
function Player:drawHUD()
utils.graphics.resetColor()
local hp = 0
local mp = 0
local weapon = 0
love.graphics.draw(self.itembox, 16, 16)
if (true) then
hp = self.hp / self.stats.maxHP
mp = self.mp / self.stats.maxMP
weapon = self.weapon
end
if (weapon ~= 0) and (weapon ~= nil) then
self.scene.assets.tileset["weapon"]:drawTile(weapon,28,28,0,1,1,8,8)
end
self.hpbar:draw(68, 14, hp)
self.mpbar:draw(68, 30, mp)
self.scene.assets.fonts["medium"]:set()
love.graphics.printf( utils.math.numberToString(self.manager.score, 6), 373, 10, 96, "right")
love.graphics.printf( utils.math.numberToString(self.manager.gold, 4), 373, 25, 96-18, "right")
love.graphics.setColor(1, 1, 85/256)
love.graphics.printf( "G", 373, 25, 96, "right")
utils.graphics.resetColor()
end
-- DEATH and HIT functions
-- All function related to damage management

View File

@ -11,13 +11,6 @@ function PlayerManager:new(scene)
self.itemList = {}
self.score = 0
self.gold = 0
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.itembox = game.gui.newTextBox("assets/sprites/gui/textbox/yellowbox.png", 24,24)
end
-- PLAYER FUNCTIONS
@ -106,32 +99,12 @@ end
-- Functions made to draw the HUD
function PlayerManager:drawHUD(dt)
utils.graphics.resetColor()
local hp = 0
local mp = 0
local weapon = 0
love.graphics.draw(self.itembox, 16, 16)
if self:playerHaveObject(1) then
local player = self:getPlayerByID(1)
hp = player.hp / player.stats.maxHP
mp = player.mp / player.stats.maxMP
weapon = player.weapon
player:drawHUD()
end
if (weapon ~= 0) and (weapon ~= nil) then
self.scene.assets.tileset["weapon"]:drawTile(weapon,28,28,0,1,1,8,8)
end
self.hpbar:draw(68, 14, hp)
self.mpbar:draw(68, 30, mp)
self.scene.assets.fonts["medium"]:set()
love.graphics.printf( utils.math.numberToString(self.score, 6), 373, 10, 96, "right")
love.graphics.printf( utils.math.numberToString(self.gold, 4), 373, 25, 96-18, "right")
love.graphics.setColor(1, 1, 85/256)
love.graphics.printf( "G", 373, 25, 96, "right")
utils.graphics.resetColor()
end
return PlayerManager