|
•Сильная штука... - Barloggg, 20.05.2003 9:30:47 |
|
|
Просмотрел я твой алгоритм...
круто...
сильная вешь...
как бы ее встроить?... хотя... где то кто то сказал: программист не может считать
настоящим программистом если не сделает свой собственный WinMiner... :)
это я к тому что имея работающий прототип будет проще написать свой...
хотя конечно лишняя работа... зато пойму как ты сумел добиться такого
прекрасного результата не пользуясь ДиректХом :) (шучу)
Однако одну весчь я заприметил:
При попытке найти заведомо неверный путь (например в центр горы) путь
не рисуется вообще. Даже не начинает рисоваться. Нужно чтобы путь
искался до ближайшей точки к самой горе и считался найденным успешно...
Или например толпа юнитов с воплями бежит в одну точку каждый из них
есть препятствие, но в конечную точку поместится только один а другие
должны встать в наиболее близкую точку к требуемой (в моей демке 006
подобная попытка приводила к курьезным результатам, я велел юнитам
останавливаться когда цель занята и юнит ближе чем на 2 клетки к ней
подошел) это конечно не совсем правильно, но хоть как-то позволяет
двигать толпу.
хе-хе, попробуйте в демке006 купить штук этак 10-20 наземных юнитов,
выделить их и послать на свободную точку... первые дойдут и остановятся,
а отстающие начнут наматывать круги вокруг уже стоящих. :))) если вообще
дойдут, из всех проверок у них есть только одна: ненаступание на
собственный хвост, это позволяет им идти вдоль стенки но не помогает
выйти из лабиринта размером хотя бы в три сосны :)
а центральные вообще не сдвинутся с места ибо на момент старта вокруг
них нет свободных мест
Я считаю твой алгоритм тяжеловатым для машины... надо комбинировать...
сначала попробовать в лоб пройти кратчайшим путем
- если удачно то сравнить отклонение по ходам от прямой линии, если
полученный результат длиннее прямой линии ну... скажем на 20-40%
то имеет смысл пропробовать оптимизировать.
- если же не удачно или полученный результат длинен то пускаем твой
алгоритм.
-- если удачно то хорошо
-- если неудачно то рассматриваем точку назначения и (возможно)
начинаем искать путь в обратном направлении чтобы найти ближайшую
возможную точку. тут могут быть варианты...
вот это будет идеальный вариант
оформить как DLL и продавать за деньги...:) (клубням скидка),
при условии технической поддержки ясен передз
...
а вообще и так очень сильно сделано, только вот не знаю как он
выглядит с позиции занятых ресурсов, надежности и универсальности...
видишь ли когда Hruks показал мне как пользоваться динамическими массивами
я захотел убрать с карты ограничению по размеру и дать возможность
генератить карту ЛЮБОГО размера. Оперативки у современных машин навалом,
опять же файл подкачки имеется...
А можешь ли ты малость модифицировать пример чтобы показывать все эти
юниты на экране в процессе поиска пути, чтобы было видно как они
расползаются, создаются и уничтожаются?
|
|
| |