MF
Что-то вокруг не так
offline
Опыт:
26,594Активность: |
Эксперименты с векторами
Собственно выкладываю видео того что получилось за 4 дня копания в редакторе и коде как таковом (в РО пока толком не лазил).
Лагает изза слабого ноута... пришлось фрапсом резать фпс, да и оптимизацией самого примера я не маялся, мне важно было проверить библиотеку векторов. После доработки напильником может и выложу саму карту... Ну и я пока не разобрался с высотами на склонах, там видно что "огоньки" двигаются не по прямой, как надо, а как бы подпрыгивают... что несколько портит эффект. Подозреваю, что там что-то не так с функцией WorldHeight.
В общем если интересно, надо и так далее, пишите, комментируйте. Ниже выкладываю код библиотеки (в том виде в котором она сейчас существует, буду еще дорабатывать под свои нужды).
З.Ы. Спасибо ScorpioT1000 за помощь с идеей структурирования.
Отредактировано ScorpioT1000, 22.02.2012 в 13:39. |
28.01.2012, 12:12 | #1
+13/−3
Профиль |
Приват |
Поиск |
IP: Записан
|
Clamp
Lost in space
offline
Опыт:
71,258Активность: |
MF:
высота даётся от склона, надо прибавлять уровень склона*его высоту каждый раз |
28.01.2012, 12:32 | #2
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
MF
Что-то вокруг не так
offline
Опыт:
26,594Активность: |
Clamp, я думал над этим... пока ниче толкового не придумал, не так давно я все таки вожусь с этим редактором.
MF добавил: там косяк координат высот происходит именно на перепаде... надо будет посмотреть как я это в варе обходил =) |
28.01.2012, 12:49 | #3
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Clamp
Lost in space
offline
Опыт:
71,258Активность: |
MF:
в варе учитывается высота склона, там GetPointZ() нормально работает |
28.01.2012, 13:39 | #4
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
MF
Что-то вокруг не так
offline
Опыт:
26,594Активность: |
Clamp, нашел одну зацепку... если поставить флаг игнорирование рельефа юниту летающему, то UnitSetHeight устанавливает абсолютную высоту... копаю в этом направлении.
MF добавил:
Собственно разобрался. Теперь все норм. Библиотека испытана =) Теперь основной вопрос, слабо принять вызов и повторить, что то похожее? На вопросы буду отвечать, разобраться в библиотеке помогу =) З.Ы. Карту выложу попозже =))) когда кто-нить че нить сделает... или же вообще ничего и никто не сделает, что будет печально. |
28.01.2012, 15:38 | #5
+4/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Msey
????
offline
Опыт:
67,346Активность: |
MF, тут скорее второе, чем первое, тк в векторах мало кто шарит |
28.01.2012, 16:05 | #6
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
MF
Что-то вокруг не так
offline
Опыт:
26,594Активность: |
Msey, ну блин... я же писал когда то статейку, для варика конечно. Кто мешает разобраться? Да и я прекрасно понимаю, что тут могут человек 5 сделать так + человека 3 могут мне сказать, что я нубье и сделать круче. Тоади например =) |
28.01.2012, 16:07 | #7
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
LLlypuK
Поналандили тут!
offline
Опыт:
42,125Активность: |
MF, тоади выгнали, кажется. |
28.01.2012, 19:54 | #8
+0/−2
Профиль |
Приват |
Поиск |
IP: Записан
|
MF
Что-то вокруг не так
offline
Опыт:
26,594Активность: |
LLlypuK, жалко... он бы меня потроллил как в старые добрые времена и сказал, что все УГ. По теме. жду добровольцев еще пару дней и потом разочаровываюсь в вас и выкладываю карту... Кстати еще во время варика видел подобное на ютубе, решил попробывать и во всем разобрался сам. А тут даже библиотеку дал вам... ну что за такое? Стыдно товарищи... |
28.01.2012, 20:16 | #9
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Clamp
Lost in space
offline
Опыт:
71,258Активность: |
Toadcop
тут он, всё ок. Лично мне влом, могу круче) Но сессия/конкурс/статьи/отмазки |
28.01.2012, 20:18 | #10
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Mihahail
๏̯͡๏
offline
Опыт:
17,766Активность: |
Вектора - это хорошо.
Не хочу показаться болтуном, но вроде ничего сложного.
С редактором знаком плохо, поэтому вопрос. Как ослеживаются столкновения? MF, не могу сейчас сделать карту, т.к. нет редактора, но попробую угадать, не против?
Создается юнит(декорация/эфект/хз), которому ставится в соответсвие вектор. Высчитываются координаты вектора как разница координат юнита и созданного эфекта. Полученная длина является значением ускорения(разумеется всё со своими коэффициентами), с которым движется эфект.
При нулевой длине вектора по XY(прохождение через юнита) эфект имеет какую-то скорость и не имеет ускорения. Затем - ускорение снова направлено к юниту. Так как юнит умеет бегать, то с некоторой периодичностью нужно обновлять координаты векторов, поворачивая их не прямо на юнита, а чуть под меньшим углом, чтобы было вращение вокруг юнита.
Отскоки обрабатываться должны по идее из равенства углов падения и отражения. Единственное что я хз - как узнать угол падения(да и вообще отследить столкновение).
Мб я чего-то не заметил, мб ты и используешь "инерцию" шариков и система более физична, но я бы реализовывал это для какой-нить абилки именно так. |
28.01.2012, 21:26 | #11
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
MF
Что-то вокруг не так
offline
Опыт:
26,594Активность: |
Mihahail, ну по сути все верно. Там всего лишь вектор ускорения с постоянным модулем направленный на юнита + ограниченная сверху скорость обновляемая. Отследить столкновение с землей тоже просто в данном случае - "не уйдет ли на следующем перемещении даммик под землю?"
Начет вектора отражения - никаких углов не ищется. Беру нормаль в точке, строю проекцию вектора скорости на нормаль и дважды плюсую полученное к вектору скорости, получится точно то, что нужно =) MF добавил: Если конечно понадобится отслеживать столкновения с юнитами и декорациями... то тут все "просто" уже не получится, но думаю свои методы тоже можно найти. |
28.01.2012, 21:31 | #12
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Mihahail
๏̯͡๏
offline
Опыт:
17,766Активность: |
MF, постоянное ускорение?) разумно, но кошернее менять модуль скорости в зависимости от длины вектора между эфектом и юнитом. Имхо, офк)
С отражением да, я так и думал, проекция на нормаль будет отрицательная и всё получится. Найс)
А как ищется нормаль? Проверяются расстояния от эфекта до препятсвия? или проще?) |
28.01.2012, 21:43 | #13
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
MF
Что-то вокруг не так
offline
Опыт:
26,594Активность: |
Mihahail, есть такая штука - векторное произведение. Если вектора не колинеарны, то она в результате дает перпендикуляр к обоим. Причем там хитро, если направление умножения одно, то он смотрит в одну сторону, если другое, то в другую. Дальше, дело техники. Конечно мой алгоритм не обладает точностью и нормаль возможно строится не совсем к нужной нам точке, а к точке под юнитом... Но для данных целей этого хватает за глаза. |
28.01.2012, 21:46 | #14
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Тонг
offline
Опыт:
13,665Активность: |
MF, возьми точку прикрепления таргета как цель, она как раз по середине модели обычно |
28.01.2012, 22:40 | #15
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
F3n1kz
offline
Опыт:
4,548Активность: |
Хмммм, завтра надо попробовать о_о |
29.01.2012, 02:39 | #16
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
заменить на
а то ты меня пугаешь =)
вот здесь каунт уменьшать ни в коем случае нельзя, ведь ты убиваешь последний вектор, а не указанный из массива
и другие
в конце просто false возвращать, зачем 2 раза вызывать громоздкую функцию?
на будущее - это называется:
ну а в целом круто, продолжай офк, буду следить) Отредактировано ScorpioT1000, 29.01.2012 в 04:36. |
29.01.2012, 03:27 | #17
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
MF
Что-то вокруг не так
offline
Опыт:
26,594Активность: |
ScorpioT1000, насчет конструктора - да, че-то я дал маху... дает знать годовое отсутствие практики такого рода. Насчет сеттеров, оптимизировать и так собирался. Насчет названий - думаю все еще причешу, особо не парился. Мне было главное убедиться, что все это заработает. |
29.01.2012, 08:29 | #18
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Зевс
Адская Зверюга
offline
Опыт:
152,154Активность: |
"В общем если интересно" Все что не на гуи всегда интересно. Ты работал на Galaxy++? |
29.01.2012, 11:32 | #19
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
MF
Что-то вокруг не так
offline
Опыт:
26,594Активность: |
Зевс, нет, никакого стороннего софта не использовал. Сейчас мучаюсь с некоторыми аспектами и понимаю, что много чего не понимаю в РО. Но в плане кода от варика они не далеко ушли... правда все стало менее интуитивно. |
29.01.2012, 12:02 | #20
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|