Closed Ogimle closed 10 years ago
Да все верно. Только так будет надежнее:
dist.sortOn("dist", Array.NUMERIC | Array.DESCENDING);
Чтобы быть уверенным в порядке сортировки. А вот какой порядок сортировки по умолчанию — я не помню :)
по умолчанию сортировка по возрастанию и в dist[0] будет искомое минимальное значение, в вашем случае максимальное и вот это
// Если враг с самой маленькой дистанцией до героя имеет меньшую дистанцию чем текущий враг... if (AntMath.distance(_hero.x, _hero.y, dist[0].unit.x, dist[0].unit.y) < AntMath.distance(_hero.x, _hero.y, _currentEnemy.x, _currentEnemy.y))
никогда не будет истинным, в вашем примере работает, только потому что за раз враг один на экране
вернее не работает, а прокатывает
Хорошо, понял. Пример поправлю :) Спасибо!
Строка: 309 : // То сортируем список по дистанции, с наименьшей дистанцией вперед. Строка: 310 : dist.sortOn("dist", Array.DESCENDING);
тупо скопипастил и получил...
это сортировка по убыванию строковых значений, наверх всплывет наибольшее символьное значение дистанции, надо использовать дефолтную сортировку с указанием, что сортируются числа
Строка: 310 : dist.sortOn("dist", Array.NUMERIC );