Что значит "обратную координату"? Исходя из того что ты тут зарисовал достаточно обратить знаки координат.
Насчет средней вообще непонятно. ты не примеры приводи, ты смысл объясняй.
З.Ы. Во что придумал =)
Определив координаты, сверять направления:
Получается 24 направления.
Если несколько направлений недоступны, то проверять свободные (на наличие соседних свободных).
Только вот как с этим разобратся, если окажется что 2 направления паралельны?
YokoInjection CodeSweeper Function not found?
Possession of mathematics at the level of art - a gift that is only available for election.
Sorry for my clumsy English.
Telegram: @tatikom
Ururu wrote:Вот тебя я и ждал А если несколько мобов??
А если несколько - то нужно подумать
Ты сказал от МОБА, а не от толпы - так, что не надо мне тут
YokoInjection CodeSweeper Function not found?
Possession of mathematics at the level of art - a gift that is only available for election.
Sorry for my clumsy English.
Telegram: @tatikom
Представь ситуацию, что ты стоишь, вокруг тебя 8 мобов, образующих квадрат 3х3.
Какое направление будет оптимальным для убеганий?)
Мобы - на то и мобы, что от них можно убегать в любую сторону, просто не нужно подходить к ним близко.
А совсем класс будет, если мобы будут телепортироваться - тогда у тебя убегалка ваще фиг знает чего намутит
YokoInjection CodeSweeper Function not found?
Possession of mathematics at the level of art - a gift that is only available for election.
Sorry for my clumsy English.
Telegram: @tatikom
нда, ты не учел самого гавного - мобы тоже перемеаются, и следует прогнозировать это перемещение. Если считать мир уо двумерным, то чар имеет 2 степени свободы, которые образуют 8 возможных элеметнарных перемещений. Если считать "скорость" чара и моба одинакивыми, то следует обходить не мобов, а зоны их возможных элементарный перемещений. Тоесть, из равенства скоростей выходит, что следует в каждый момент времени выберать путь, обходящий не 1 клетку, а квадрат размером 3 на 3 (это, кстати, без учета того, что моб может атаковать на расстоянии).
Для случая нескольких мобов можно, в общем случае, разделить пространство на 4 зоны: непроходимую, зону неизбежного контакта с мобом, зону поражения моба, безопасную зону.
Далее, с помощью существующих и хорошо расписанных алгоритмов, стоишь траекторию (с учетов приоритета зон), и на каждом своем перемещении корректируешь её (это исходя из того, что чар - самый быстрый объект в игре, иначе чар никогда не убежит от противника и убегалка не имеет смысла).
Ururu wrote:З.Ы. а что это за тема писать в файл статику (проходную и нет), нулями и еденицами
Бинарная карта называется... чего тут непонятного?
Ururu wrote:как я понял можно тогда расписать весь путь на полосы, каждая полоса, это квадрат, если моб в квадрате А, то идти ерез квадрат Б. правильно?
Судя по всему, ты сам не понимашь что ты хочешь получить в конечном результате.
Рассказываю идею;)
Вспомним физику... Что есть сила в геометрическом представлении?;)
Вектор... направление, которого указывает направление дествия силы, а его длина пропрциональна значению этой силы.
Так вот система уравновешена, тогда и только тогда, когда геометрическая сумма всех сил равна 0;) тобишь дает нулевой вектор.
Типерь применительно к нашему случаю;) Мы расматриваем чара как точку к которой приложены все силы, но нам не хватает 1 которая бы уравновесила бы всю систему;) именно этот вектор и покажет нам куда нужно будет бежать;) Теперь делаем упрощение, будем считать что это чар оказывает на всех монстров действие;) и все вектора будут исходить от него. Теперь что есть дилна вектора... Длина это не длина отрезка, а то на сколько опасен монстр в даный момент (учитывая его место положение с чаром и его параметры), преобразовав длины всех векторов по такому принципу и найдя последний вектор (потом его нормализовав) получаем на правление куда надо ломится;) кстати длина получившегося вектора будет также говорить на сколько опасна ситуация, если длина получилась очень большая то не факт что чар выживит;))
ПС если надо могу оформить наглядными картинками;)
Кому: DerMeister Добавлено: Вс Апр 22, 2007 9:47 Тема: Re: Привет! Привет! В открытый доступ выкладывать пока рано. Байт-карта - это массив нулей и единиц, частично генерируемый инжектовским скриптом (статика) и частично редактируемый вручную (динамика, дома). Могу сделать для тебя привейт-билд библиотеки для тестирования, с примером использования.
Сейчас я разрабатываю мап-билдер для этой библиотеки - конвертацию "на лету" статичных данных из mul-файла для преобразования в байт-карту, а в будущем планирую встроить в Стелс некий анализатор пакетов, с тем, чтобы в байт-карту подтягивались данные о динамике. Таким образом будет реализована универсальная ходилка.
Так что переходи на стелс, там скоро будит такая штука
Grin wrote:Рассказываю идею;) Вспомним физику... Что есть сила в геометрическом представлении?;) Вектор... направление, которого указывает направление дествия силы, а его длина пропрциональна значению этой силы. Так вот система уравновешена, тогда и только тогда, когда геометрическая сумма всех сил равна 0;) тобишь дает нулевой вектор. Типерь применительно к нашему случаю;) Мы расматриваем чара как точку к которой приложены все силы, но нам не хватает 1 которая бы уравновесила бы всю систему;) именно этот вектор и покажет нам куда нужно будет бежать;) Теперь делаем упрощение, будем считать что это чар оказывает на всех монстров действие;) и все вектора будут исходить от него. Теперь что есть дилна вектора... Длина это не длина отрезка, а то на сколько опасен монстр в даный момент (учитывая его место положение с чаром и его параметры), преобразовав длины всех векторов по такому принципу и найдя последний вектор (потом его нормализовав) получаем на правление куда надо ломится;) кстати длина получившегося вектора будет также говорить на сколько опасна ситуация, если длина получилась очень большая то не факт что чар выживит;))
ПС если надо могу оформить наглядными картинками;)
Вот ты отжег... он сам не понимает чего хочет, а ты ему такое...
Тагда я могу предложить систему цетра масс... считаем имеем дискретное распределение массы в пространстве - "масса" i-того элеметнта - характеристика моба. Дальше считаем положение центра масс и пологаем, что в любой момент времени этот центр масс движется к чару с некоторой скоростью, далее рыгак архимеда и тп... уравновешиваем рычаг всеми возможными способами... Естественным выводом становится догма о том, что нужно двигаться от цетра масс с относительной скоростью >0.
Только все это бред! Легко доказать, что такие системы управления находятся вблизи точки равновесия, и при незначительном изменении параметров, можут становится неустойчивыми. (результирующий вектор может начать вращаться вокруг чара и получется фигня).
На мой взяд следует применять СУ с ОС, тоесть систему по отклонению, а не по возбуждению.
Ururu wrote:Чем тебе ненравятся вектора? Это вполне реально, и у чара больше шансов выжить будет, нежели просто тупо ломанутся через мобов.
мде, я же написал почему... если тебе нужно тупо двигатся в противоположную сторону от "угрозы", тогда твои вектора напрямую сводятся к распределению массы в системе. ТОглько не нужно морочатся кто воздецствует... Полагаешь что ты и есть центр масс, резуьтатом вычислений будет вектор между тобой и реальным цетром масс. Дальше тупо движешься в противополоджном направлении.
ПС: http://ru.wikipedia.org/wiki/Центр_масс
Только вот система такая может становится колебательной, что будит выглядеть как идиотизм