Nemezid
offline
Опыт:
8,077Активность: |
Как уловить, что юнит прошел между двумя другими юнитами?
Доброго времени суток. Не придумал, как еще задать вопроса, поэтому поясню - нужно как-то триггерно уловить тот момент, когда один юнит проходит между двумя другими. Как это сделать? Это подобно способности Виспа из Dota, где при проходе между Виспом и другим связанным с ним героем - проходящий станится. |
20.04.2014, 16:58 | #1
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
16GB
GhostOne User
offline
Опыт:
59,317Активность: |
почему раки не юзают поиск ? [+] 1 пункт от Кет: 2.1 (оскорбление)
|
20.04.2014, 17:09 | #2
+1/−2
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Nemezid
offline
Опыт:
8,077Активность: |
Потому же, почему ты создавал подобную тему, хоть несколько раз уже выкладывали карту) |
20.04.2014, 17:19 | #3
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
[B]elFUnGan
Kicked by ZlaYa1000
offline
Опыт:
426Активность: |
16GB, Старый-добрый капитан роты "Сидим-на-форуме-и-ждем-пока-кто-нибудь-задаст-вопрос-чтобы-его-обосрать" |
20.04.2014, 17:51 | #4
+8/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Nemezid
offline
Опыт:
8,077Активность: |
Возник еще вопрос - как сделать, чтобы это действовало на несколько объектов, т.е. несколько растяжек, а не как в данной карте (лишь 2 предмета между которыми нельзя ходить). Думал, думал, не придумал. |
22.04.2014, 22:10 | #5
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
nvc123
new status
offline
Опыт:
59,284Активность: |
Nemezid26rus, читать статьи желательно про структуры |
22.04.2014, 23:04 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Nemezid
offline
Опыт:
8,077Активность: |
nvc123, для данного случая я не вижу выхода, кроме как создать отдельные триггеры для каждых 2х юнитов-переменных. Ибо назначать на них какой-то номер, а потом выделять целую А или целую Б не выходит |
22.04.2014, 23:11 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Buulichkaa
Делаю спеллы за еду
offline
Опыт:
20,171Активность: |
Nemezid26rus, выход в выходе с гуи |
23.04.2014, 08:39 | #8
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
God_of_light
http://xgm.ru/p/ps
offline
Опыт:
7,949Активность: |
Как то давно делал такое на гуи, костыль еще тот получился, но он работал. Суть в чем. Имеетя два юнита - они являются углами воображаемого прямоугольника, в котором можно отслеживать перемещение другого юнита. Каждый период времени берем координаты положения углов, имеем по два значения Х и У, сравниваем с координатами положения третьего юнита, если его х и у находятся в пределах между значениями координат углов, то юнит находится в нужном нам прямоугольнике. Остается сравнить angle между обоими углами и этим юнитом. С погрешностью в 1-2 градуса |
23.04.2014, 09:24 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Nemezid
offline
Опыт:
8,077Активность: |
God_of_light, именно так и было в карте, которую мне подкинули. Проблема лишь в том, что, видимо, нельзя охватывать сразу несколько разных юнитов парами и проверять все условия. Лишь создавать второй так же триггер с другими переменными. А если будет слишком много таких "растяжек", то и триггеров много. А триггеры, действующие каждые несколько миллисекунд обычно вызывают торможение игры. Решения видимо нет. |
23.04.2014, 21:09 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
16GB
GhostOne User
offline
Опыт:
59,317Активность: |
|
23.04.2014, 21:16 | #11
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
nvc123
new status
offline
Опыт:
59,284Активность: |
Nemezid26rus, могу написать на си/в джасс за доллары или евро
nvc123 добавил: 1 триггер и всё будет нормально работать |
23.04.2014, 22:04 | #12
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
ну там надо ray tracing писать - на высоких скоростях единица может "пролететь" между кадрами (итерациями) так, что в первый кадр единица будет до линии, а второй после, вследствие чего событие никогда не сработает)
и тут солюшены обычно склоняются к гпу хардвейр решениям (обычно CUDA, в дорогом мультиплеере особенно), но если нет возможности - пишут доп. вычисления, которые "предсказывают", где единица будет в след. итерации и если есть шанс, что будет колижн, то она заранее пускает евент в вц3 можно посмотреть пример на xdestr / xcoll |
24.04.2014, 02:46 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Nemezid
offline
Опыт:
8,077Активность: |
Вы что, серьезно за рубли всё пишите? То ли с моего последнего прихода на форуме всё изменилось, то ли код очень сложный.
Nemezid26rus добавил: ScorpioT1000, да, я заметил, что оно моментами не улавливает пробежавшего юнита. Еще это как-то связанно с расстоянием между точками |
24.04.2014, 16:05 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
связано это с тем, что процессор считает (двигает) дискретно (итерациями), а не непрерывно и если большое расстояние поделить на время итерации, получим скорость, при которой единица эту итерацию пролетит |
24.04.2014, 16:13 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,184Активность: |
зачем объяснять про рейтрейс и то как работают обычные движки тем кто не умеет пользоваться элементарным поиском? |
24.04.2014, 16:40 | #16
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
всё равно эта задача особо не решаема в этой игре) потому что там единицы - не точки, а здоровые юниты с овердохрена параметров
была помню идея гонять точки и просчеты делать с точками, а юнитов двигать реже, допустим просчеты с векторами идут с периодом 0.01, а юниты синхронизируются с ними с периодом 0.04 (тока там полностью свой поиск пути будет и юнит по сути как модель работает)
да в принципе насрать ... |
24.04.2014, 16:43 | #17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
God_of_light
http://xgm.ru/p/ps
offline
Опыт:
7,949Активность: |
ScorpioT1000, как тебя попросить чтобы услышать подробности?
God_of_light добавил:
интересно God_of_light добавил: Nemezid26rus, да минусы очевидны. Я думаю можно запилить еще больший костыль на гуи, но думаю ни к чему |
24.04.2014, 16:58 | #18
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
про коллизии? просто экстраполируется точка от двух и более координат в итерациях ..., t(-2), t(-1) и до t(0) и узнается, где приблизительно будет в t(1), t(2), ...
это от линейной экстраполяции и вплоть до искусственного интеллекта можно реализовывать ScorpioT1000 добавил:
вот пример, фиолетовая кривая - движение, зеленая кривая - предсказание движения |
24.04.2014, 17:05 | #19
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
God_of_light
http://xgm.ru/p/ps
offline
Опыт:
7,949Активность: |
ScorpioT1000, то есть в принципе на гуи (я из х ребят что в нем застряли) сделать можно |
24.04.2014, 17:18 | #20
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|