XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
TmaRT

offline
Опыт: 1,360
Активность:
Определения пути перемещения юнита, моментально
Когда юниту дают приказ идти в такуюта точку карты, то он как вы знаете находит самый короткий путь и идет туда обходя все прегады, так вот мне нужно вычеслить этот путь моментально! как это можно сделать? желательно с примерном

TmaRT добавил:
Ну хотябы подкинте идею как это можна реализовать?

Отредактировано TmaRT, 20.05.2009 в 14:35.
Старый 20.05.2009, 14:51
ELDAR
НИИ 4А-ВО кафедра SPELLS
offline
Опыт: 8,394
Активность:
TmaRT unreal, просто не-воз-мож-но
Старый 20.05.2009, 15:08
puLser
Я мясо
offline
Опыт: 957
Активность:
Есть функция которая определяет расстояние от одной точеи до другой моментально, но там кажется определение расстояния идет по перпендикуляру...
а по-другому по-мойму никак...
Старый 20.05.2009, 15:10
Чебурашка

offline
Опыт: 5,460
Активность:
Нужно именно моментально, когда еще юнит идет вычислить?
Старый 20.05.2009, 15:16
TmaRT

offline
Опыт: 1,360
Активность:
ELDARМне надо имитация этого, тоесть не обезательно вычеслить путь который пройдет юнит, мне надо найти самые короткий путь, и что бы учитовались блокираторы...
Не ужто unreal? а жаль(

puLserЭт я знаю...

мне в этой траектории, надо расставить эфекты, растояния между эффектоми 70, потом по этой троектории пойдет юнит который будет перемещатся тригерно
Старый 20.05.2009, 15:21
Jasst Player

offline
Опыт: 444
Активность:
можно создать дами юнита,отловить "смарт" героя,отправить дами туда ,а по пути создать нужные эффекты(дами тоже должен учитывать блок.пути..),но м.б есть луче способь
Старый 21.05.2009, 08:22
Doberman341
Базару нет...
offline
Опыт: 831
Активность:
Погугли алгоритм поиска пути. В варе путь расчитывается по клеточкам, поэтому можно попробовать реализовать этот алгоритм. Проверяешь клетку по направлению движения.
Если клетка не доступна для прохождения по ней, берешь соседнюю и тд.
Как пиксели в картинке, алгоритм поиска области одного цвета, как заливка в паинте работает.
Вообщем, гугол тебе в помощь, надеюсь, ты программирование знаешь в достаточной степени.
Вообще-то, интересная идея. Я домой приду попробую реализовать. Может затянуться дня на два, так что жди.
Старый 21.05.2009, 09:28
SRes
1110101000
offline
Опыт: 9,997
Активность:
Какой алгоритм... люди, зачем искать геморой и нереальные лаги ? Вот Jasst Player сказал единственно верный, имхо, вариант. Даммик+эффекты и пожалуйста, моментально невозможно (не нужно так возмущаться, пожалуйста), в любом случае надо считать, а это уже не моментально.

Отредактировано alexkill, 21.05.2009 в 10:41.
Старый 21.05.2009, 10:35
TmaRT

offline
Опыт: 1,360
Активность:
Doberman341Ок, жду

SResПро то что сказал Jasst Player у меня так и реализлвано, но смотрится имхо совсем убога и нужен алгоритм!
Старый 21.05.2009, 11:13
ELDAR
НИИ 4А-ВО кафедра SPELLS
offline
Опыт: 8,394
Активность:
Цитата:
Погугли алгоритм поиска пути. В варе путь расчитывается по клеточкам, поэтому можно попробовать реализовать этот алгоритм. Проверяешь клетку по направлению движения.
Если клетка не доступна для прохождения по ней, берешь соседнюю и тд.

вероятно ты имеешь ввиду перебор массива в глубину, но в варе юнит идет не по клеткам а по координатам, и в игре такого понятие как клетка просто нет
Старый 21.05.2009, 12:06
dave_wwid

offline
Опыт: 12,954
Активность:
Есть вариант, если это все делается для пошагового боя, попробовать разметить карту по локациям как шахматную доску (массив ячеек) но это явно еще тот гемор особенно если учесть что в каждой клетке сможет помешаться несколько юнитов или несколько разрушаемых обьектов... И помоему где то в константах в mpq архиве ВАРА (в WE кажется этого нет) я видел что-то похожее на размер игровой клетки. Не уверен...
Старый 21.05.2009, 15:44
NETRAT

offline
Опыт: 83,712
Активность:
алгоритмы поиска пути в данном случае будут строиться намного дольше чем передвижение дамми, не говоря о том что запрограммировать их тоже сложнее чем дамми

NETRAT добавил:
вообще, в варкрафте используются те же алгоритмы о которых идет речь, для этого и существует карта путей (файл mmp), по нему строится матрица по которой и считаются пути, проблема в том что система прошита в движок и никаких интерфейсов к ней кроме функций типа IsTerrainPathable (проверки конкретных точек на значение в mmp) нет. Реализация точно такого же алгоритма на уровне jass будет кушать на два порядка больше cpu чем встроенный механизм.
Старый 21.05.2009, 15:57
TmaRT

offline
Опыт: 1,360
Активность:
Цитата:
алгоритмы поиска пути в данном случае будут строиться намного дольше чем передвижение дамми

Имеешь виду будут тормоза? которые будут длится дольше чем сам дамми дойдет до туда? а если делать через ректы? ммм хотя 10000 ректов размером(10 на 10)делать это полный гемор:( неужто нет варианта реализация моментального вычисления?

TmaRT добавил:
NETRATА если делать искусственную матрицу? с ректами
Старый 21.05.2009, 16:06
NETRAT

offline
Опыт: 83,712
Активность:
при чем тут вообще ректы? определение пути производится при помощи алгоритмов поиска - есть два базовых алгоритма - поиск в глубину, и поиск в ширину, и есть куча оптимизаций этих алгоритмов под частные случаи(в движке варкрафта используется оптимизированный поиск в глубину с выбором направления, насколько я помню), если ты напишешь то же самое что уже прошито на jass, то но будет работать в >100 раз медленнее, и будет значительно лагать, не говоря уже о сложности самого алгоритма, который придется описать в jass

NETRAT добавил:
ну и, очевидно, кроме классического алгоритма тебе придется учитывать размеры юнитов для того что бы корректно рассчитывать коллижны, значит сетку придется детализировать. В общем случае подобный рассчет поведения юнита невозможен в рамках скриптового движка jass/
Старый 21.05.2009, 16:15
TmaRT

offline
Опыт: 1,360
Активность:
Цитата:
В общем случае подобный рассчет поведения юнита невозможен в рамках скриптового движка jass/

Жаль=( ладно убедил, я тебе верю... придется как то по другому делать...

ПС! но вопрос открыт!
Старый 21.05.2009, 16:22
ScorpioT1000
Работаем
offline
Опыт: отключен
Ну бурги что-то пытались уже написать =) а для чего это нужно?
Цитата:
мне в этой траектории, надо расставить эфекты, растояния между эффектоми 70, потом по этой троектории пойдет юнит который будет перемещатся тригерно

ну пускай дамми, который каждые 70 пунктов будет создавать location в своей позиции, затем по этим локам пускай нужного юнита, ну и удаляй их =)
Старый 21.05.2009, 21:38
TmaRT

offline
Опыт: 1,360
Активность:
Цитата:
ну пускай дамми, который каждые 70 пунктов будет создавать location в своей позиции, затем по этим локам пускай нужного юнита, ну и удаляй их =)

А игрок будет ждать пока это дамми доберется до туда=) может пройти 30 секунд прежде чем юнит пойдет по этой троектории, игроку это совсем не понравится...

TmaRT добавил:
А эти бурги все же написали эту сису?
Старый 21.05.2009, 22:48
J
expert
offline
Опыт: 48,447
Активность:
tсли ландшавт состоит из простых геометрических обьектов то поизовращавщись можно на джассе найти чтото что можно назвать путем
Старый 21.05.2009, 22:53
TmaRT

offline
Опыт: 1,360
Активность:
У меня был вариант с дамми! но этот вариант провалился ибо он не моментально изменяет свой угол направления! если вариант что бы юнит изменял свой угол моментально?
Старый 21.05.2009, 22:53
ScorpioT1000
Работаем
offline
Опыт: отключен
поставь в ро в свойствах, и скорость высокую сделать и все будет быстро
Старый 21.05.2009, 22:56
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 06:12.