Показать сообщение отдельно
Старый 13.07.2011, 23:18
Scorp2008 вне форума Посмотреть профиль Отправить личное сообщение для Scorp2008 Найти все сообщения от Scorp2008
  № 18  
Ответить с цитированием
Scorp2008

Регистрация: Dec 2009
Сообщений: 42
Спасибо вам, вот уже наваял код который заносит все объекты которые пересекаются в отдельным массив, а также определяют дистанцию. Вот (по одной координате не стал делать, т.к. с любоый стороны ведь враг подойти может, и то что по одной координате он ближе всего не значит что он ближе всего вообще):
Код 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. "добавить в массив объект примерно такого вида..." - именно с этим и не ясно совсем, можно пояснить как оно в коде выглядеть будет? А также это самый краткий путь? что-то столько вычислений делается, как бы думаю тормозов не было при большом количество врагов.


Последний раз редактировалось Scorp2008; 13.07.2011 в 23:23.