scenes/levels: add a system to show number-type gfx
This commit is contained in:
parent
75be0acb2d
commit
7b99c2588c
|
@ -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)
|
||||
|
|
|
@ -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
|
|
@ -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"
|
||||
|
||||
|
|
Loading…
Reference in New Issue