TmaRT
offline
Опыт:
1,360Активность: |
Определения пути перемещения юнита, моментально
Когда юниту дают приказ идти в такуюта точку карты, то он как вы знаете находит самый короткий путь и идет туда обходя все прегады, так вот мне нужно вычеслить этот путь моментально! как это можно сделать? желательно с примерном
TmaRT добавил: Ну хотябы подкинте идею как это можна реализовать? Отредактировано TmaRT, 20.05.2009 в 14:35. |
20.05.2009, 14:51 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ELDAR
НИИ 4А-ВО кафедра SPELLS
offline
Опыт:
8,394Активность: |
TmaRT unreal, просто не-воз-мож-но
|
20.05.2009, 15:08 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
puLser
Я мясо
offline
Опыт:
957Активность: |
Есть функция которая определяет расстояние от одной точеи до другой моментально, но там кажется определение расстояния идет по перпендикуляру... а по-другому по-мойму никак... |
20.05.2009, 15:10 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Чебурашка
offline
Опыт:
5,460Активность: |
Нужно именно моментально, когда еще юнит идет вычислить? |
20.05.2009, 15:16 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
TmaRT
offline
Опыт:
1,360Активность: |
ELDARМне надо имитация этого, тоесть не обезательно вычеслить путь который пройдет юнит, мне надо найти самые короткий путь, и что бы учитовались блокираторы...
Не ужто unreal? а жаль( puLserЭт я знаю... мне в этой траектории, надо расставить эфекты, растояния между эффектоми 70, потом по этой троектории пойдет юнит который будет перемещатся тригерно |
20.05.2009, 15:21 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Jasst Player
offline
Опыт:
444Активность: |
можно создать дами юнита,отловить "смарт" героя,отправить дами туда ,а по пути создать нужные эффекты(дами тоже должен учитывать блок.пути..),но м.б есть луче способь |
21.05.2009, 08:22 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Doberman341
Базару нет...
offline
Опыт:
831Активность: |
Погугли алгоритм поиска пути. В варе путь расчитывается по клеточкам, поэтому можно попробовать реализовать этот алгоритм. Проверяешь клетку по направлению движения.
Если клетка не доступна для прохождения по ней, берешь соседнюю и тд. Как пиксели в картинке, алгоритм поиска области одного цвета, как заливка в паинте работает. Вообщем, гугол тебе в помощь, надеюсь, ты программирование знаешь в достаточной степени. Вообще-то, интересная идея. Я домой приду попробую реализовать. Может затянуться дня на два, так что жди. |
21.05.2009, 09:28 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
SRes
1110101000
offline
Опыт:
9,997Активность: |
Какой алгоритм... люди, зачем искать геморой и нереальные лаги ? Вот Jasst Player сказал единственно верный, имхо, вариант. Даммик+эффекты и пожалуйста, моментально невозможно (не нужно так возмущаться, пожалуйста), в любом случае надо считать, а это уже не моментально.
Отредактировано alexkill, 21.05.2009 в 10:41. |
21.05.2009, 10:35 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
TmaRT
offline
Опыт:
1,360Активность: |
Doberman341Ок, жду
SResПро то что сказал Jasst Player у меня так и реализлвано, но смотрится имхо совсем убога и нужен алгоритм! |
21.05.2009, 11:13 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ELDAR
НИИ 4А-ВО кафедра SPELLS
offline
Опыт:
8,394Активность: |
Цитата:
вероятно ты имеешь ввиду перебор массива в глубину, но в варе юнит идет не по клеткам а по координатам, и в игре такого понятие как клетка просто нет |
|
21.05.2009, 12:06 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
dave_wwid
offline
Опыт:
12,954Активность: |
Есть вариант, если это все делается для пошагового боя, попробовать разметить карту по локациям как шахматную доску (массив ячеек) но это явно еще тот гемор особенно если учесть что в каждой клетке сможет помешаться несколько юнитов или несколько разрушаемых обьектов... И помоему где то в константах в mpq архиве ВАРА (в WE кажется этого нет) я видел что-то похожее на размер игровой клетки. Не уверен... |
21.05.2009, 15:44 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NETRAT
offline
Опыт:
83,712Активность: |
алгоритмы поиска пути в данном случае будут строиться намного дольше чем передвижение дамми, не говоря о том что запрограммировать их тоже сложнее чем дамми
NETRAT добавил: вообще, в варкрафте используются те же алгоритмы о которых идет речь, для этого и существует карта путей (файл mmp), по нему строится матрица по которой и считаются пути, проблема в том что система прошита в движок и никаких интерфейсов к ней кроме функций типа IsTerrainPathable (проверки конкретных точек на значение в mmp) нет. Реализация точно такого же алгоритма на уровне jass будет кушать на два порядка больше cpu чем встроенный механизм. |
21.05.2009, 15:57 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
TmaRT
offline
Опыт:
1,360Активность: |
Цитата:
Имеешь виду будут тормоза? которые будут длится дольше чем сам дамми дойдет до туда? а если делать через ректы? ммм хотя 10000 ректов размером(10 на 10)делать это полный гемор:( неужто нет варианта реализация моментального вычисления? TmaRT добавил: NETRATА если делать искусственную матрицу? с ректами |
|
21.05.2009, 16:06 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NETRAT
offline
Опыт:
83,712Активность: |
при чем тут вообще ректы? определение пути производится при помощи алгоритмов поиска - есть два базовых алгоритма - поиск в глубину, и поиск в ширину, и есть куча оптимизаций этих алгоритмов под частные случаи(в движке варкрафта используется оптимизированный поиск в глубину с выбором направления, насколько я помню), если ты напишешь то же самое что уже прошито на jass, то но будет работать в >100 раз медленнее, и будет значительно лагать, не говоря уже о сложности самого алгоритма, который придется описать в jass
NETRAT добавил: ну и, очевидно, кроме классического алгоритма тебе придется учитывать размеры юнитов для того что бы корректно рассчитывать коллижны, значит сетку придется детализировать. В общем случае подобный рассчет поведения юнита невозможен в рамках скриптового движка jass/ |
21.05.2009, 16:15 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
TmaRT
offline
Опыт:
1,360Активность: |
Цитата:
Жаль=( ладно убедил, я тебе верю... придется как то по другому делать... ПС! но вопрос открыт! |
|
21.05.2009, 16:22 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
Ну бурги что-то пытались уже написать =) а для чего это нужно?
Цитата:
ну пускай дамми, который каждые 70 пунктов будет создавать location в своей позиции, затем по этим локам пускай нужного юнита, ну и удаляй их =) |
|
21.05.2009, 21:38 | #16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
TmaRT
offline
Опыт:
1,360Активность: |
Цитата:
А игрок будет ждать пока это дамми доберется до туда=) может пройти 30 секунд прежде чем юнит пойдет по этой троектории, игроку это совсем не понравится... TmaRT добавил: А эти бурги все же написали эту сису? |
|
21.05.2009, 22:48 | #17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,447Активность: |
tсли ландшавт состоит из простых геометрических обьектов то поизовращавщись можно на джассе найти чтото что можно назвать путем |
21.05.2009, 22:53 | #18
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
TmaRT
offline
Опыт:
1,360Активность: |
У меня был вариант с дамми! но этот вариант провалился ибо он не моментально изменяет свой угол направления! если вариант что бы юнит изменял свой угол моментально? |
21.05.2009, 22:53 | #19
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
поставь в ро в свойствах, и скорость высокую сделать и все будет быстро |
21.05.2009, 22:56 | #20
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|