| ||||||
Заголовок: Алгоритм обхода припятствий? Прислано пользователем derick на 22.04.2005 в 08:17:45 Кто знает? | ||||||
Заголовок: Re: Алгоритм обхода припятствий? Прислано пользователем Force_Majeure на 22.04.2005 в 19:18:59 А чего тут знать, в JA используется стандартный A* | ||||||
Заголовок: Re: Алгоритм обхода припятствий? Прислано пользователем Ломолом на 22.04.2005 в 20:02:38 2Force_Majeure: Хороший ответ! | ||||||
Заголовок: Re: Алгоритм обхода припятствий? Прислано пользователем Force_Majeure на 23.04.2005 в 05:38:06 2Ломолом: Quote:
Каков вопрос :) | ||||||
Заголовок: Re: Алгоритм обхода припятствий? Прислано пользователем derick на 03.05.2005 в 19:49:57 так чем не понятен вопрос?? я имею в виду как персонаж выбюирает пусть обхода препятвия | ||||||
Заголовок: Re: Алгоритм обхода припятствий? Прислано пользователем derick на 03.05.2005 в 19:50:53 т.е. щелкаешь, а он же идет не напрямик, а обходит деревья и т.д. | ||||||
Заголовок: Re: Алгоритм обхода припятствий? Прислано пользователем Force_Majeure на 04.05.2005 в 07:50:56 т.е. тебе изложить сам алгоритм? В кратце принцип такой: известны координаты (в двумерной плоскости карты) точки А, где стоит человек и В, куда ему нужно переместиться. По ним находится длина L прямой между этими точками. Карта делится на клетки (массив) заполненные 0, значит свободно, и 1, там где есть препятствие. Из точки А делается "ход" персонажа на одну клетку карты по всем 8 направлениям (самоадресуемый список). Длину каждого из 8 маршрутов считают исходя из того, что двинуться на соседнюю клетку напрямую стоит 2 ед., а по диагонали 3. При движении, ессно, берем только теварианты, где "свободно". Все 8 вариантов кладутся в массив Р. Все имеющиеся арианты сравниваются с L и выбирается наиболее близкий. далее обсчитываем его по томуже принципу, а 7 ост. вариантов сбрасываются в др. масств Р1, их нельзя выбрасывать т.к. в последствии они могут оказаться более выгодными, чем идти напрямую (например, если прямой путь заведет внутрь препятствия, по форме буквы "П"), тогда из Р1 достается наиболее выгодный вариант и все продолжается уже с ним. | ||||||
Заголовок: Re: Алгоритм обхода припятствий? Прислано пользователем Mr Evil на 11.06.2005 в 11:47:57 Даже не знаю в какую тему вопрос написать. Вопрос такой: Каким образом можно транспорту прописать хождение по водной глади на тактической карте? (По принципу Хамера на дорогах). Я понял, что нужно прописать сектора, по которым транспортное средство может передвигаться. Я прв или нет? | ||||||
Заголовок: Re: Алгоритм обхода припятствий? Прислано пользователем Force_Majeure на 11.06.2005 в 12:21:46 2Mr Evil: Как хаммер ездит по дорогам в JA? Классический случай применения Астар. Quote:
Простой думерный массив с 0 и 1. 0 - сектор с водой, 1 - там где ехать нельзя (суша). | ||||||
Заголовок: Re: Алгоритм обхода припятствий? Прислано пользователем Mr Evil на 11.06.2005 в 13:44:35 2Force_Majeure: Хм... Довольно просто. Спасибо. ;D | ||||||
Заголовок: Re: Алгоритм обхода припятствий? Прислано пользователем Ghaydn на 13.08.2006 в 21:44:01 [attach] Крайне странно смотрится в свете описанного выше алгоритма обхода препятствий. В бою такой путь может оказаться фатальным. За врагами и ополченцами такого я не замечал, так как AI несколько шире возможности управления. В частности враги могут замирать на бегу каждую клетку аналогично нажатию ESC, но не останавливаясь, что бы привело к лишней трате очков за повторное начало бега. Просто к слову пришлось. | ||||||
Заголовок: Re: Алгоритм обхода припятствий? Прислано пользователем Чертовска Вражiна на 14.08.2006 в 02:10:13 Ghaydn: В СквадЛидере м.б. путь по клеткам отметить: часть пути которая тебя устраивает в конце помечается 1 кликом, а далее м. другой маршрут избирать и помечать его. Когда весь путь отметил -- двойной клик и происходит движение. Но это только к багмонстру -- если сможет расковырять и переделать данный алгоритм. | ||||||
Заголовок: Re: Алгоритм обхода припятствий? Прислано пользователем Force_Majeure на 15.08.2006 в 13:21:04 2Ghaydn: А что странного? Если бы дерева не было, он шел бы по диагонали (на рисунке вниз) до конца, а потом повернул направо. А так, он дошел до дерева, обогнул его и дальше продолжил обычный путь. А опасности боя классический А-стар не учитывает, для этого нужно какие-то модификации. | ||||||
Заголовок: Re: Алгоритм обхода припятствий? Прислано пользователем Ghaydn на 19.08.2006 в 21:44:00 2Force_Majeure: Обогнуть дерево можно двумя путями. Но он почему-то упорно выбирает именно тот, что длиннее. И дело даже не только и не столько в опасности боя, сколько в элементарном просчёте: проход слева длиннее, чем справа. Значит, при сравнении длины путей правый не просчитывается совсем. Значит, алгоритм неполный/несовершенный. Значит, его надо доработать. | ||||||
Заголовок: Re: Алгоритм обхода припятствий? Прислано пользователем Force_Majeure на 20.08.2006 в 06:10:10 2Ghaydn: Quote:
Огибать дерево с разных сторон - стоит равнозначно, если я не ошибаюсь в подсчетах, красный и синий пути займут одинаковое кол-во ОД. [attach] | ||||||
Заголовок: Re: Алгоритм обхода припятствий? Прислано пользователем Strax5 на 21.08.2006 в 10:18:17 2Force_Majeure: вообщето 4 против 3 | ||||||
Заголовок: Re: Алгоритм обхода припятствий? Прислано пользователем Force_Majeure на 21.08.2006 в 13:33:03 2Strax5: Может я где то ошибаюсь? Первые три клетки абсолютно одинаковы, так? Остается или две клетки по красному пути 2+2=4 очка или одна клетка по синему плюс поворот 3+1=4 очка. | ||||||
Заголовок: Re: Алгоритм обхода припятствий? Прислано пользователем Strax5 на 23.08.2006 в 13:01:23 2Force_Majeure: 0.5 + 3 + 0.5 = 4 полных (всего 5 клеток) 0.5 + 2 + 0.5 = 3 полных (всего 4 клетки) А поворот отдельно считается? | ||||||
Заголовок: Re: Алгоритм обхода припятствий? Прислано пользователем Ghaydn на 23.08.2006 в 20:21:43 Вообще если быть совсем точным, то сама система траты очков в игре меня смущает. Тайл ведь при взгляде сверху (а не в проекции) имеет форму квадрата. Значит, примем его сторону за 1. Тогда диагональ будет равна корню из двух, то есть примерно 1.4. Приравнять 1.4 к двум совсем уж не получается (приравняем к 1.5 :) ). Теперь подсчитаем путь Карлоса с имеющимися данными. Получается синий 6, а красный 7. В жизни путь получился бы длиннее на целую единицу. | ||||||
Заголовок: Re: Алгоритм обхода припятствий? Прислано пользователем Force_Majeure на 24.08.2006 в 08:30:20 2Strax5: В классическом а-старе нет, но в Джа ведь считаются. Никак не пойму, как ты счиатешь, но кажется догнал, в чем моя ошибка, не считал одного поворота на красном пути, действительно получается красный на единицу длиннее. 2Ghaydn: В а-старе обычно прямой переход берут за 2 а диагональный за 3. | ||||||
Заголовок: Re: Алгоритм обхода припятствий? Прислано пользователем lalien на 24.08.2006 в 11:43:26 А разве повороты при ходьбе вообще считаются? Даже если шагнуть на клетку которая находится за спиной это будет стоить столько же сколько шаг вперёд. | ||||||
Заголовок: Re: Алгоритм обхода припятствий? Прислано пользователем Ghaydn на 24.08.2006 в 12:15:33 2lalien: Не считаются ни при ходьбе, ни при любом другом движении. | ||||||
Заголовок: Re: Алгоритм обхода припятствий? Прислано пользователем Force_Majeure на 25.08.2006 в 08:00:14 Хм, действительно, повороты не считаются. Вот что значит давно в Джа не играл :) Тогда и вправду, путь предложенный алгоритмом длиннее, с чем это связано не знаю ??? | ||||||
Заголовок: Re: Алгоритм обхода припятствий? Прислано пользователем GreenEyeMan на 23.09.2006 в 04:47:35 Надеюсь в правильную ветку задал вопрос. Можно ли (если можно то где) изменить скорость передвижения персов\вражин\монстров? Запретить бег для врагов? | ||||||
Заголовок: Re: Алгоритм обхода припятствий? Прислано пользователем bugmonster на 26.09.2006 в 15:30:44 2GreenEyeMan: Quote:
И не надейся, но модеры разберутся, если что ;D Quote:
Что ты подразумеваешь под "скоростью передвижения"? Если скорость анимации, то в JA2CW это сделано. Quote:
Можно. Если сильно надо, могу поискать где и что менять. | ||||||
Заголовок: Re: Алгоритм обхода припятствий? Прислано пользователем GreenEyeMan на 26.09.2006 в 19:18:49 2bugmonster: "Если сильно надо, могу поискать где и что менять." - ну, если не в лом. ::) А если еще в своу ПдМ такую возможность встроешь, вообще здоровски будет. "скорость анимации" - ну да, но только не для всех, а для отдельных "особей". | ||||||
Заголовок: Re: Алгоритм обхода припятствий? Прислано пользователем bugmonster на 02.10.2006 в 12:54:53 2GreenEyeMan: Вообще скорость анимации движения в Джа и так рассчитывается "на лету" в зависимости от многих праметров: пошаговка/реалтайм, бодитайп, физ. параметры, усталость, здоровье. Поэтому уточни: что требуется по задумке? | ||||||
Заголовок: Re: Алгоритм обхода припятствий? Прислано пользователем GreenEyeMan на 04.10.2006 в 19:01:32 2bugmonster: В принципе, хочеться отключить бег и снизить в два раза скорость передвижения пешком у определенного перса (допустип - качок). Можно сказать, это ради эксперемента толлько: можно или нельзя. | ||||||
Заголовок: Re: Алгоритм обхода припятствий? Прислано пользователем VM на 04.10.2006 в 19:30:16 2GreenEyeMan: Скорость передвижения напрямую зависит от подвижности перса. Уменьши ее в его профиле и получишь медленного качка. | ||||||
Заголовок: Re: Алгоритм обхода припятствий? Прислано пользователем Strax5 на 02.11.2006 в 12:56:12 А как вам такой обход? :( | ||||||
Заголовок: Re: Алгоритм обхода припятствий? Прислано пользователем Strax5 на 16.02.2007 в 20:10:52 Вот такой еще обход препятсвия. Если курсор поставть на одну клетку выше - обход будет с другой стороны. | ||||||
Заголовок: Re: Алгоритм обхода припятствий? Прислано пользователем Strax5 на 02.04.2008 в 09:13:47 Вот еще глючные обходы. При этом если сделать пару шагов по этому пути, Барри автоматически получает стакон дроби в голову. | ||||||
Заголовок: Re: Алгоритм обхода припятствий? Прислано пользователем Strax5 на 02.04.2008 в 09:16:42 Самый нелогочный на мой взгляд. | ||||||
Заголовок: Re: Алгоритм обхода припятствий? Прислано пользователем Strax5 на 02.04.2008 в 09:16:59 Еще один | ||||||
Заголовок: Re: Алгоритм обхода припятствий? Прислано пользователем pipetz на 02.04.2008 в 09:40:28 В 2, 3 такое ощущение что такой путь игра считает более безопасным. Вообще алгоритм обхода, кажется, отличается в скрытном режиме. Но у тебя тут везде не скрытный режим. Почему так ныкаются непонятно. | ||||||
Заголовок: Re: Алгоритм обхода припятствий? Прислано пользователем Strax5 на 05.05.2008 в 13:15:14 Вот еще глюк с передвижением мне абсолютно не понятный. Если Стефен бежит прямо - 7 АР, если сворачивает направо сразу после входа - 8. А если налево - 10. | ||||||
Заголовок: Re: Алгоритм обхода припятствий? Прислано пользователем Strax5 на 05.05.2008 в 13:15:34 Вот так. | ||||||
Заголовок: Re: Алгоритм обхода припятствий? Прислано пользователем pipetz на 14.08.2009 в 05:27:46 Ну, вот я и досюда добрался. :) 2Force_Majeure: on 1114186739, Force_Majeure wrote:
Откуда такая информация? Неужели из исходников? :o Я спрашиваю потому что сам в них нефига не разобрался. Там активно используется оператор "goto". Я как увидел чуть в обморок не упал. :) Вот в 1.13 точно A* по крайней мере судя по названиям классов и функций. :) Если кто интересуется алгоритмом А* вот небольшая прога с исходниками на C#. По моему очень наглядно. Автор некий Карлос Барбоса. Я правда немного подправил, у него там не A* было, а какой-то A+. :) | ||||||
Заголовок: Re: Алгоритм обхода припятствий? Прислано пользователем Force_Majeure на 14.08.2009 в 06:52:24 2pipetz: 2005 год... тогда исходники еще не копали :) А писал я это судя просто по тому, как осуществляется обход мерками препятствий. Естественно, мог и ошибаться, но скорее всего там все-таки она родимая А-звездочка. | ||||||
Заголовок: Re: Алгоритм обхода припятствий? Прислано пользователем pipetz на 14.08.2009 в 07:16:59 on 1250221944, Force_Majeure wrote:
Да вот ХЗ. Она или не она. Зачем тогда создатели 1.13 переписали этот код именно под A*? Ежели он уже был A*. Возможно, конечно, просто чтобы отрефакторить , в смысле "причесать". Дело тёмное. Надо медведей трясти. | ||||||
A.I.M. » Powered by YaBB Modification 4 (v.4.0.0-pre)! YaBB © 2000-2003. All Rights Reserved. |