Page 1 of 2
Как получить координаты обратные данным?
Posted: 2007-05-20 14:29:20
by Ururu
Пример 1
Получаем координату обратную данной.
Координата
-2;3
Устанавливаем переменные:
Code: Select all
х3=-3
х2=-2
х1=-1
х0=0
х-1=1
х-2=2
х-3=3
у3=-3
у2=-2
у1=-1
у0=0
у-1=1
у-2=2
у-3=3
Получаем обратную координату
2;-3
************************************
Пример 2
Как тут получить среднюю обратную координату? Если задано несколько координат (две, три и т.д.)
Posted: 2007-05-20 14:37:38
by DerMeister =)
Что значит "обратную координату"? Исходя из того что ты тут зарисовал достаточно обратить знаки координат.
Насчет средней вообще непонятно. ты не примеры приводи, ты смысл объясняй.
Posted: 2007-05-20 14:50:01
by Ururu
Хочу убежать от моба в оптимальном направлении =)
З.Ы. Во что придумал =)
Определив координаты, сверять направления:
Получается 24 направления.
Если несколько направлений недоступны, то проверять свободные (на наличие соседних свободных).
Только вот как с этим разобратся, если окажется что 2 направления паралельны?
Posted: 2007-05-20 15:20:21
by Destruction
Дык бежать в обратную сторону, чем стоит моб
Смотри ф-цию getWalkDir.
Posted: 2007-05-20 15:21:06
by Ururu
Вот тебя я и ждал
А если несколько мобов??
Posted: 2007-05-20 15:22:23
by Destruction
Ururu wrote:Вот тебя я и ждал
А если несколько мобов??
А если несколько - то нужно подумать
Ты сказал от МОБА, а не от толпы - так, что не надо мне тут

Posted: 2007-05-20 15:24:14
by Destruction
Подумал.
Представь ситуацию, что ты стоишь, вокруг тебя 8 мобов, образующих квадрат 3х3.
Какое направление будет оптимальным для убеганий?)
Мобы - на то и мобы, что от них можно убегать в любую сторону, просто не нужно подходить к ним близко.
А совсем класс будет, если мобы будут телепортироваться - тогда у тебя убегалка ваще фиг знает чего намутит

Posted: 2007-05-20 15:26:04
by Ururu
В том и дело. Бегу, встретил моба. Нужно отбежать в оптимальном направлении (от них) и дальше стремится в нужное направление.
З.Ы. Есть вариант конечно искать только первого моба и убегать, но это не красиво =)
Posted: 2007-05-20 15:56:39
by Nmy
ну ты замутил
делаеш бота- каторого запускаеш он сам бегает, убивает, приносит денег ?
некуда ты неубежыш, будут палки, будут стены и будут другие
Posted: 2007-05-20 16:11:24
by Ururu
Мне просто нужно пробежать через толпу шустрых мобов =)
Я уже почти оформил мвсль =)
Posted: 2007-05-20 16:17:40
by DerMeister =)
нда, ты не учел самого гавного - мобы тоже перемеаются, и следует прогнозировать это перемещение. Если считать мир уо двумерным, то чар имеет 2 степени свободы, которые образуют 8 возможных элеметнарных перемещений. Если считать "скорость" чара и моба одинакивыми, то следует обходить не мобов, а зоны их возможных элементарный перемещений. Тоесть, из равенства скоростей выходит, что следует в каждый момент времени выберать путь, обходящий не 1 клетку, а квадрат размером 3 на 3 (это, кстати, без учета того, что моб может атаковать на расстоянии).
Для случая нескольких мобов можно, в общем случае, разделить пространство на 4 зоны: непроходимую, зону неизбежного контакта с мобом, зону поражения моба, безопасную зону.
Далее, с помощью существующих и хорошо расписанных алгоритмов, стоишь траекторию (с учетов приоритета зон), и на каждом своем перемещении корректируешь её (это исходя из того, что чар - самый быстрый объект в игре, иначе чар никогда не убежит от противника и убегалка не имеет смысла).
Posted: 2007-05-20 16:37:08
by Ururu
как я понял можно тогда расписать весь путь на полосы, каждая полоса, это квадрат, если моб в квадрате А, то идти ерез квадрат Б.
правильно?
З.Ы. а что это за тема писать в файл статику (проходную и нет), нулями и еденицами
Posted: 2007-05-20 17:44:54
by DerMeister =)
Ururu wrote:З.Ы. а что это за тема писать в файл статику (проходную и нет), нулями и еденицами
Бинарная карта называется... чего тут непонятного?
Ururu wrote:как я понял можно тогда расписать весь путь на полосы, каждая полоса, это квадрат, если моб в квадрате А, то идти ерез квадрат Б.
правильно?
Судя по всему, ты сам не понимашь что ты хочешь получить в конечном результате.
Posted: 2007-05-20 19:46:31
by Ururu
Я знаю что мне надо. Просто как собака, все понимаю, сказать немогу =)
А как создать такую карту (бинарную) нужно ведь map.mul читать...
Posted: 2007-05-20 20:13:21
by Grin
Рассказываю идею;)
Вспомним физику... Что есть сила в геометрическом представлении?;)
Вектор... направление, которого указывает направление дествия силы, а его длина пропрциональна значению этой силы.
Так вот система уравновешена, тогда и только тогда, когда геометрическая сумма всех сил равна 0;) тобишь дает нулевой вектор.
Типерь применительно к нашему случаю;) Мы расматриваем чара как точку к которой приложены все силы, но нам не хватает 1 которая бы уравновесила бы всю систему;) именно этот вектор и покажет нам куда нужно будет бежать;) Теперь делаем упрощение, будем считать что это чар оказывает на всех монстров действие;) и все вектора будут исходить от него. Теперь что есть дилна вектора... Длина это не длина отрезка, а то на сколько опасен монстр в даный момент (учитывая его место положение с чаром и его параметры), преобразовав длины всех векторов по такому принципу и найдя последний вектор (потом его нормализовав) получаем на правление куда надо ломится;) кстати длина получившегося вектора будет также говорить на сколько опасна ситуация, если длина получилась очень большая то не факт что чар выживит;))
ПС если надо могу оформить наглядными картинками;)
Posted: 2007-05-20 20:15:22
by DerMeister =)
Кому: DerMeister
Добавлено: Вс Апр 22, 2007 9:47
Тема: Re: Привет!
Привет! В открытый доступ выкладывать пока рано. Байт-карта - это массив нулей и единиц, частично генерируемый инжектовским скриптом (статика) и частично редактируемый вручную (динамика, дома). Могу сделать для тебя привейт-билд библиотеки для тестирования, с примером использования.
Сейчас я разрабатываю мап-билдер для этой библиотеки - конвертацию "на лету" статичных данных из mul-файла для преобразования в байт-карту, а в будущем планирую встроить в Стелс некий анализатор пакетов, с тем, чтобы в байт-карту подтягивались данные о динамике. Таким образом будет реализована универсальная ходилка.
Так что переходи на стелс, там скоро будит такая штука

Posted: 2007-05-20 20:25:44
by Ururu
Я во втором своем посте хотел это выразить, но незнал как =)
З.Ы. Можно картинки в студию ? =)
З.З.Ы. На стесл перейду когда окошко прикрутите =)
Posted: 2007-05-20 20:28:55
by DerMeister =)
Grin wrote:Рассказываю идею;)
Вспомним физику... Что есть сила в геометрическом представлении?;)
Вектор... направление, которого указывает направление дествия силы, а его длина пропрциональна значению этой силы.
Так вот система уравновешена, тогда и только тогда, когда геометрическая сумма всех сил равна 0;) тобишь дает нулевой вектор.
Типерь применительно к нашему случаю;) Мы расматриваем чара как точку к которой приложены все силы, но нам не хватает 1 которая бы уравновесила бы всю систему;) именно этот вектор и покажет нам куда нужно будет бежать;) Теперь делаем упрощение, будем считать что это чар оказывает на всех монстров действие;) и все вектора будут исходить от него. Теперь что есть дилна вектора... Длина это не длина отрезка, а то на сколько опасен монстр в даный момент (учитывая его место положение с чаром и его параметры), преобразовав длины всех векторов по такому принципу и найдя последний вектор (потом его нормализовав) получаем на правление куда надо ломится;) кстати длина получившегося вектора будет также говорить на сколько опасна ситуация, если длина получилась очень большая то не факт что чар выживит;))
ПС если надо могу оформить наглядными картинками;)
Вот ты отжег...

он сам не понимает чего хочет, а ты ему такое...
Тагда я могу предложить систему цетра масс... считаем имеем дискретное распределение массы в пространстве - "масса" i-того элеметнта - характеристика моба. Дальше считаем положение центра масс и пологаем, что в любой момент времени этот центр масс движется к чару с некоторой скоростью, далее рыгак архимеда и тп... уравновешиваем рычаг всеми возможными способами... Естественным выводом становится догма о том, что нужно двигаться от цетра масс с относительной скоростью >0.
Только все это бред! Легко доказать, что такие системы управления находятся вблизи точки равновесия, и при незначительном изменении параметров, можут становится неустойчивыми. (результирующий вектор может начать вращаться вокруг чара и получется фигня).
На мой взяд следует применять СУ с ОС, тоесть систему по отклонению, а не по возбуждению.
Posted: 2007-05-20 20:33:30
by Ururu
Чем тебе ненравятся вектора? Это вполне реально, и у чара больше шансов выжить будет, нежели просто тупо ломанутся через мобов.
Posted: 2007-05-20 20:40:49
by DerMeister =)
Ururu wrote:Чем тебе ненравятся вектора? Это вполне реально, и у чара больше шансов выжить будет, нежели просто тупо ломанутся через мобов.
мде, я же написал почему... если тебе нужно тупо двигатся в противоположную сторону от "угрозы", тогда твои вектора напрямую сводятся к распределению массы в системе. ТОглько не нужно морочатся кто воздецствует... Полагаешь что ты и есть центр масс, резуьтатом вычислений будет вектор между тобой и реальным цетром масс. Дальше тупо движешься в противополоджном направлении.
ПС:
http://ru.wikipedia.org/wiki/Центр_масс
Только вот система такая может становится колебательной, что будит выглядеть как идиотизм
