sw, sh = 8, 8 function is_colliding(a, b) ax1, bx1 = a.position.x, b.position.x ax2, bx2 = ax1 + sw, bx1 + sw ay1, by1 = a.position.y, b.position.y ay2, by2 = ay1 + sh, by1 + sh return (ax1 < bx2 and ax2 > bx1 and ay1 < by2 and ay2 > by1) end function handle_collision(a, b) if b.entity_type == Entities.Enemy then print(b.id, b.id * 10, b.id * 10) end end function run_collisions() collidable = filter(_World, function(e) return e.collision end) for _ai, a in pairs(collidable) do for _bi, b in pairs(collidable) do if a.id == b.id then goto continue end if is_colliding(a, b) then handle_collision(a, b) end ::continue:: end end end