Я делаю игру Tower Defense во Flash без предопределенного пути.
Хотя моя сетка 40х40 (маленькая?), A * испытывает трудности при пересчете каждый раз. Поэтому я сделал свою собственную модификацию, чтобы облегчить пересчет, и количество затронутых ячеек упало примерно до 900 (при модификации около корня). Он все еще замораживается в течение очень короткого, но обнаруживаемого периода времени, когда устанавливается новая башня.
Это проблема реализации или 40х40 слишком много?
Редактировать:
Структура моего кода:
- Все данные сохраняются в 2d массиве ячеек.
- Каждая ячейка содержит своего родителя в направлении пути (1-8 по часовой стрелке) и битовый кодированный массив ее дочерних элементов в пути (каждый бит представляет дочерний элемент).
- Поиск осуществляется по A * с оценкой евклидова расстояния.