Если поиск длится слишком долго, то он прекращается и путь возвращается как null. В объекте astar есть переменная с именем maxSearchTime. По умолчанию, эта переменная установлена в 5000 (5 секунд), но вы, конечно, можете изменить это значение по своему усмотрению.
Используя команду Test Movie просмотрите SWF, полученный из astar.fla. Вы увидите сеть из плиток 20 на 20. Нажмите любую плитку для добавления начальной позиции и затем нажмите любую другую плитку для добавления цели назначения. Затем нажмите на каждую плитку, которую вы хотите превратить в стену. Наконец, нажмите на кнопку запуска поиска Search. Вы увидите появившийся на экране путь. Для поиска другого пути нажмите кнопку Clear и стартуйте снова.
Чтобы посмотреть более интересное приложение, откройте файл iso_ai_astar.fla в папке Chapter09 и создайте SWF, используя команду Test Movie. Вы должны узнать эту сцену из Главы 8, «Изометрический взгляд на мир». Нажмите в любом месте карты. Обратите внимание, что персонаж немедленно идет к цели назначения, обходя объекты. Это простой пример ситуации типа, где мы могли бы извлечь выгоды из использования алгоритма A*, но, как вы понимаете, он работает действительно хорошо для любых видов игр, для которых подходит этот вид мира.
Разновидности алгоритма A*
Теперь вы увидели и испытали мою версию алгоритма A*. Для игр, которые похожи на изометрические примеры, показанные в предыдущем разделе, моя реализация, вероятно, достаточно хороша для того, что вы делаете. Однако, если вы собираетесь использовать карты, которые больше чем 20 на 20 плиток (что весьма вероятно), вы быстро поймете, что моя версия A* является недостаточно быстрой. Или вы можете пожелать воспользоваться преимуществом особенностей алгоритма A* для сложных поверхностей, которые я не включил в мою версию. Для ускорения алгоритма A* или другого, обрабатывающего сложные поверхности, вы должны будете изменить мою версию A*, создать вашу собственную, или использовать одну из созданных кем-то еще