![]() |
Подсветка всех доступных клеток для хода
Путь ищется по алгоритму AStar и клетки по которым должен пройти юнит кидаются в массив. А как подсветить все возможные для хода клетки?
|
Можно применить к ним один из фильтров.
|
Я не про саму подсветку ))) Я про алгоритм выбора клеток для подсветки.
|
Вы же сказали:
Цитата:
Добавлено через 1 минуту А... я не о том. Пардон. Добавлено через 3 минуты Вы хотите подсветить все проходимые клетки? |
Цитата:
|
Погодите-ка, а разве вы не сообщаете изначально какие клетки являются проходимыми, а какие нет? Или я чего-то не понимаю?
|
Не, послушайте. Каждый юнит может ходить только на определённое количество клеток. Нужно подсветить все клетки на которые может пойти юнит от его ТЕКУЩЕЙ клетки, при этом учитывая на сколько клеток он может ходить.
Один путь я могу подсветить. Ну вариантов на какую клетку может пройти юнит много, мне то и надо это поймать. |
У Вас же в A* должна быть функция, которая просчитывает возможные варианты хода с конктретной клетки.
Либо модифицируйте алгоритм, что бы он складывал в массивы {текущая клетка:[вариант1,2,3]} Либо вызывайте эту функцию просчета возможных ходов каждый раз, когда меняется активная клетка А потом применяйте фильтры к найденным клеткам |
У меня А* находит наилучший путь и он мне возвращает этот путь (массив). По которому я прогоняю моего юнита. Можете пожалуйста подробней объяснить, я совсем не понимаю.
|
Ну а что тебе мешает переделать этот самый Astar не для поиска пути до конкретной клетки, а для поиска проходимых клеток по пути не больше n от начальной клетки поиска?
Сам астар я реализовать не пробовал и не знаю точных различий с алгоритмом ли (последний, вроде как, частный случай первого), но в ли это легко делается. (просто завершаем алгоритм, когда клетки кончились доступные для поиска и возвращаем все пройденные). Не думаю, что в астаре сильно сложнее. |
| Часовой пояс GMT +4, время: 02:51. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.