From ae089b58a547c4c82ac48544934dff6215357c84 Mon Sep 17 00:00:00 2001 From: Kazhnuz Date: Thu, 31 Oct 2024 09:43:22 +0100 Subject: [PATCH] fix(hitbox): fix position computation --- .../scenes/world/actors/physics/hitbox.lua | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/framework/scenes/world/actors/physics/hitbox.lua b/framework/scenes/world/actors/physics/hitbox.lua index d62273e..ac55bf3 100644 --- a/framework/scenes/world/actors/physics/hitbox.lua +++ b/framework/scenes/world/actors/physics/hitbox.lua @@ -73,11 +73,11 @@ function Hitbox:applyScale(scale) local sy = scale.y or 1 if (sx < 0) then - self.position.x = self.owner.dimensions.w - self.position.x - self.dimensions.w + self.relativePosition.x = self.owner.dimensions.w - self.relativePosition.x - self.dimensions.w end if (sy < 0) then - self.position.y = self.owner.dimensions.h - self.position.y - self.dimensions.h + self.relativePosition.y = self.owner.dimensions.h - self.relativePosition.y - self.dimensions.h end end @@ -132,4 +132,18 @@ function Hitbox:checkCollisionAtPoint(destination, filter) return new, cols, colNumber end +-- DEBUG FUNCTIONS +-- Draw debug + +function Hitbox:draw() + local position = self:getPosition() + local dimensions = self.dimensions + local r, g, b = love.graphics.getColor() + love.graphics.setColor(0, 0, 0, 0.5) + love.graphics.rectangle("fill", math.floor(position.x), math.floor(position.y), dimensions.w, dimensions.h) + love.graphics.setColor(0, 0, 0, 1) + love.graphics.rectangle("line", math.floor(position.x), math.floor(position.y), dimensions.w, dimensions.h) + love.graphics.setColor(r, g, b) +end + return Hitbox