AntKarlov / Anthill-Framework

Tiny framework for creating Flash games.
57 stars 16 forks source link

samples/src/testDrive/TestTaskManager.as fix #11

Closed Ogimle closed 10 years ago

Ogimle commented 11 years ago

Строка: 309 : // То сортируем список по дистанции, с наименьшей дистанцией вперед. Строка: 310 : dist.sortOn("dist", Array.DESCENDING);

тупо скопипастил и получил...

это сортировка по убыванию строковых значений, наверх всплывет наибольшее символьное значение дистанции, надо использовать дефолтную сортировку с указанием, что сортируются числа

Строка: 310 : dist.sortOn("dist", Array.NUMERIC );

AntKarlov commented 11 years ago

Да все верно. Только так будет надежнее:

dist.sortOn("dist", Array.NUMERIC | Array.DESCENDING);

Чтобы быть уверенным в порядке сортировки. А вот какой порядок сортировки по умолчанию — я не помню :)

Ogimle commented 11 years ago

по умолчанию сортировка по возрастанию и в 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))

никогда не будет истинным, в вашем примере работает, только потому что за раз враг один на экране

Ogimle commented 11 years ago

вернее не работает, а прокатывает

AntKarlov commented 11 years ago

Хорошо, понял. Пример поправлю :) Спасибо!