Может кто нибудь обьяснить или дать наработку, как сделать рикошет снаряда(дамми юнита) от стен или других не проходимых объектов.
Принятый ответ
Похожие вопросы:
ответ
nvc123:Рикошет это тип атаки(тип оружия - edited), такой, у охотниц Лунный чакрум нифига не дает, просто иконка, сам эффект вызван переключением атаки.надо давать скил рикошет вроде
Это делает либо апгрейдом либо морфом юнита, так же подсовыванием (убиранием абилки с орб эффектом)
ВНИМАНИЕ - тип атаки снаряд рикошет не сочетается с большинством орб эффектов.
ответ
Делать триггерные Криты и баши.
Дефолтные модификаторы атаки в в варе ( особенно для дальнего боя) не дружат между собой. Так что делаем их кастом версии.
ответ
Область поражения будет не округлой а эпилептической, смещенной на некоторое расстояние вперед, чтобы добится эффекта как от волны силы, чтобы поражать врагов позади цели атаки.
ответ
Самое главное - получить нормаль, вот некоторые функции, которые тебе пригодятся:float3 GetNormal(float3 a, float3 b, float3 c) { float wrki; float3 v1 = float3.create(); float3 v2 = float3.create(); float3 normal = float3.create(); v1.x = a.x - b.x; v1.y = a.y - b.y; v1.z = a.z - b.z; v2.x = b.x - c.x; v2.y = b.y - c.y; v2.z = b.z - c.z; wrki = SquareRoot(sqr(v1.y * v2.z - v1.z * v2.y) + sqr(v1.z * v2.x - v1.x * v2.z) + sqr(v1.x * v2.y - v1.y * v2.x)); normal.x = (v1.y * v2.z - v1.z * v2.y) / wrki; normal.y = (v1.z * v2.x - v1.x * v2.z) / wrki; normal.z = (v1.x * v2.y - v1.y * v2.x) / wrki; return normal; } float DotProduct(float3 v1, float3 v2) { return v1.x*v2.x + v1.y*v2.y + v1.z*v2.z; } float3 Reflect(float3 ray, float3 normal) { return -2 * DotProduct(ray, normal) * normal + ray; }
Далее в функции движения снаряда определяем столкновение с землёй, получаем нормаль и строим вектор отражения по данной нормали и текущей скорости снаряда:float3 v1 = float3.New(curPos.x+2, curPos.y+2, GetTerrainZ(curPos.x+2, curPos.y+2)); float3 v2 = float3.New(curPos.x+2, curPos.y, GetTerrainZ(curPos.x+2, curPos.y)); float3 v3 = float3.New(curPos.x, curPos.y+2, GetTerrainZ(curPos.x, curPos.y+2)); float3 normal = GetNormal(v1, v2, v3); float3 reflect = Reflect(curVelocity, normal);
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
XGM Bot
6 лет назад
0
Похожие вопросы:
- Рикошет
ответ
quq_CCCP:
- Тип оружия рикошет.
ответ
quq_CCCP:
- Тип атаки)
ответ
quq_CCCP:
- Как реализовать адекватный рикошет от клифов?
ответ
ENAleksey:
Поиск по всем ресурсам на сайте
Принятый ответ
0
Araders
6 лет назад
0
Это либо свою систему писать либо ищи вот тут, мб может где-то на сайте или поищи в старых вопросах на сайте.
0
quq_CCCP
6 лет назад
0
22a4y, Есть в моей карте аналог форс стафа из доты, толкой мой вариант рекошетит цель от препятствий, могу дать код - но jass онли, гуи версии нет.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.