scenes/levels: add a system to show number-type gfx

This commit is contained in:
Kazhnuz 2019-03-04 18:44:02 +01:00
parent 75be0acb2d
commit 7b99c2588c
4 changed files with 31 additions and 1 deletions

View File

@ -30,6 +30,7 @@ end
function Ennemy:getDamage(base_damage)
local damage = math.max(base_damage - self.armor, 1)
self.hp = math.max(0, self.hp - damage)
self.obj.Numbers(self.level, self.x+8, self.y+8, damage, {1,0,0})
if (self.hp == 0) then
self:destroy()
self.obj.GFX(self.level, self.x+8, self.y+8, "poof", 1)

View File

@ -0,0 +1,28 @@
local Entity = require "scenes.levels.entities.parent"
local NumberGFX = Entity:extend()
function NumberGFX:new(level, x, y, number, color)
NumberGFX.super.new(self, level, "number", x - 8, y - 24, 16, 16)
self.number = number or 0
self.color = color or {1, 1, 1}
self.life = 1.5
self.count = 0
end
function NumberGFX:update(dt)
self.count = self.count + dt
if self.count > self.life then
self:destroy()
end
self.y = self.y - 32 * dt
end
function NumberGFX:draw()
love.graphics.setColor(self.color)
self.level.assets.fonts["medium"]:set()
love.graphics.printf(self.number, self.x+8-40, self.y+8, 80, "center")
utils.graphics.resetColor()
end
return NumberGFX

View File

@ -8,7 +8,8 @@ Obj.Coin = require "scenes.levels.entities.loot.coin"
Obj.Coin5 = require "scenes.levels.entities.loot.coin5"
Obj.Coin10 = require "scenes.levels.entities.loot.coin10"
Obj.Weapon = require "scenes.levels.entities.weapon"
Obj.GFX = require "scenes.levels.entities.gfx"
Obj.GFX = require "scenes.levels.entities.gfx.gfx"
Obj.Numbers = require "scenes.levels.entities.gfx.numbers"
Obj.Debris = require "scenes.levels.entities.debris"
Obj.Player = require "scenes.levels.entities.player"