English Version            Русская версия

 [ Разделы сервера ]  [ Карта сервера ]  [ Новости сервера ] [ Обратная связь ]



В следующих двух разделах я кратко рассмотрю как быстродействие, так и поддержку сложных поверхностей. Недостаточно быстро для вас? Как вы, возможно, обратили внимание в astar.fla, скорость, с которой найден путь очень низка. В iso_ai_astar.fla скорость едва приемлема. В этом файле поиск имеет тенденцию занимать (по крайней мере, на моем компьютере) от 80 миллисекунд (ms) до 400 ms. В astar.fla простой поиск без стен из левого-верхнего угла в нижний-правый занимает от 3 до 4 секунд! При построении этого алгоритма A* на ActionScript, я сосредотачивался на его работоспособности и делал его простым для использования – не на скорости. Однако, в последующие месяцы я возможно оптимизирую этот ActionScript по скорости (так что не стесняйтесь заходить на www.electrotank.com, чтобы посмотреть как у меня это получается). Если у вас не доходят руки, чтобы заняться быстрой реализацией A* на ActionScript, загляните в папку astar_optimized. Там вы найдете некоторые очень быстрые файлы с алгоритмом A*, созданные Каспером Шуйринком (Casper Schuirink). То, что занимает у меня от 3 до 4 секунд, у Каспера делается за время от 150 ms до 200 ms, и, в большинстве случаев, не более 100 ms. Как и все высоко оптимизированные файлы, они имею свои недостатки. Один из главных, в данном случае, состоит в том, что файлы недостаточно легко адаптируются к вашим собственным приложениям. Легкость использования принесена в жертву скорости, так что будьте осторожны. Сделайте транспортное средство для любой местности В предыдущем разделе я упомянул, что вы можете изменить мою реализацию A* для обработки других поверхностей. Вы можете сделать это в функции cost(). Функция cost() передает информацию в родительский узел и текущий узел. Используя эту информацию, алгоритм A* вычисляет стоимость. Если вы хотите добавить различные виды поверхностей, таких как песок, вода, или нефть, то вы могли бы установить их в соответствии с вашим выбором (например, terrain ="water") в узле, который представляет эту плитку
Hosted by uCoz