Спасибо вам, вот уже наваял код который заносит все объекты которые пересекаются в отдельным массив, а также определяют дистанцию. Вот (по одной координате не стал делать, т.к. с любоый стороны ведь враг подойти может, и то что по одной координате он ближе всего не значит что он ближе всего вообще):

Код AS3:
for (var k:uint = 0; k < sad.length; k++) {
var sadV:Point = sad[k].localToGlobal(new Point(stage.x, stage.y));
var pow1:Number = (bodyconm.x - sadV.x);
pow1 *= pow1;
var pow2:Number = (bodyconm.y - sadV.y);
pow2 *= pow2;
var distance:Number = Math.sqrt(pow1 + pow2);
trace(distance);
}
Вроде дистанция определяется верно, sad - это уже массив с объектами которые пересеклись. А вот дальше загвоздка, что-то не пойму как быстренько определить наименьшее значение и воздействовать на него этот элемент?
P.S.: localToGlobal делаю потому что враги у меня расположены внутри клипа карты, который я двигаю вместо игрока когда двигаюсь.
Я так понял дальше нужно как говорит i.o. "добавить в массив объект примерно такого вида..." - именно с этим и не ясно совсем, можно пояснить как оно в коде выглядеть будет? А также это самый краткий путь? что-то столько вычислений делается, как бы думаю тормозов не было при большом количество врагов.