Files
paku/data/utils/util.lua

37 lines
989 B
Lua

util={}
function util.inside(x, y, rectangle)
if x >= rectangle[1] and
y >= rectangle[2] and
x < rectangle[3]+rectangle[1] and
y < rectangle[4]+rectangle[2] then
return true
else
return false
end
end
function util.aabb(sprite)
local x = sprite.pos.x + sprite.bbo.left
local y = sprite.pos.y + sprite.bbo.top
local w = sprite.size.w - sprite.bbo.right - sprite.bbo.left
local h = sprite.size.h - sprite.bbo.bottom - sprite.bbo.top
return x, y, w, h
end
function util.check_aabb_collision(x1,y1,w1,h1, x2,y2,w2,h2)
return ( x1 < x2 + w2 and x1 + w1 > x2 and y1 < y2 + h2 and y1 + h1 > y2 )
end
function util.luminance(r, g, b)
return (0.2126*r + 0.7152*g + 0.0722*b)/255
end
function util.normalize(v)
local magnitud = math.sqrt(v.x * v.x + v.y * v.y)
if magnitud == 0 then
return {x = 0, y = 0} -- evita división por cero
end
return {x = v.x / magnitud, y = v.y / magnitud}
end