Добавлен Darknessay
Помогите понять в чем проблема, пожалуйста -.-
Снаряд создается с небольшим смещением от героя(правее или левее) и летит по дуге в точку каста.
Смещение = 45 либо -45(рандомно), это же и поворот снаряда исходный.
По формуле мана снаряда устанавливается как = значение, которое должно вычитаться от его текущего поворота, чтобы он собственно летел по дуге, поворачиваясь.
Снаряд создается с небольшим смещением от героя(правее или левее) и летит по дуге в точку каста.
Смещение = 45 либо -45(рандомно), это же и поворот снаряда исходный.
По формуле мана снаряда устанавливается как = значение, которое должно вычитаться от его текущего поворота, чтобы он собственно летел по дуге, поворачиваясь.
Так вот, почему то финальный угол, который должен быть равен +-90(типа полный поворот снаряда к концу пути = дуга), в итоге равняется 115(где то при 1000 расстояния), а сам снаряд, кажется, долетает расстояние до точки каста, но не формирует полную дугу - чем дальше точка каста. Т.е. он умирает левее или правее точки каста(на глаз, где то на 250-500 от точки каста, при расстоянии в 2000).
Я думаю дело в неверных расчетах с 3.14, но что не так?
Запуск:
Запуск:
Движение(каждые 0.03):
Принятый ответ
Кстати можно двигать так:
скрины формулы
есть форму скорпа
function geoArc takes real wayAbsolute returns real
return sin((bj_PI / 2.0) * wayAbsolute)
endfunction
function GeoArcBetweenReal takes real wayMin, real wayMax, real wayNow returns real
return geoArc((wayNow-wayMin) / (wayMax-wayMin))
endfunction
function GeoArcRelative takes real wayMin, real wayMax, real wayNow, real resultMin, real resultMax returns real
return (GeoArcBetweenReal(wayMin,wayMax,wayNow) * (resultMax-resultMin)) + resultMin
endfunction
вызываешь GeoArcRelative(тут начало отсчета, тут конец отсчета, тут место где находится сейчас, тут минимальный нужный результат, тут максимальный нужный результат) возвращает значение между последними двумя относительно того, как далеко wayNow переместилась между первыми двумя
вобще это в 2D, а надо в 3D - добавь полярные координаты, или сделай отдельно для каждого измерения...ну у тебя есть Z допустим пол это 50, потолок (самый верх параболы) - это 300
юнит идет от точки 0 до точки 1000, вот он идет, идет, где он щас находится пусть будет X
set unitZ = GeoArcRelative(0, 1000, X, 50, 300)
wayMin - минимальная расстояние (можно поставить ноль)
wayMax - максимальная точка (ставите нужный размер длины дуги)
wayMin и wayMax образуют отрезок (длину дуги)
wayNow - текущее положение точки
resultMin - минимальная высота
resultMax - максимальная высота
карта
wayMax - максимальная точка (ставите нужный размер длины дуги)
wayMin и wayMax образуют отрезок (длину дуги)
wayNow - текущее положение точки
resultMin - минимальная высота
resultMax - максимальная высота
карта
еще есть бросок Tiny из доты и бросок из Пуджа Варс (надыбил на форуме). Код очень отличается от типичной параболы у нас на сайте в алгоритмах, там за основу счетчик берется. Мне понравился бросок из Пуджа Варс. Все эти примеры скинул в карту Только в наработке с Toss Tinny, которую скинул, есть небольшая накладка, там у него два скила (спешил и не посмотрел), и нужно поменять id-приказ у канала, тогда будет все ок (не знаю, почему дал ему вторую, мне казалось крута сравнить, щас не кажется)
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
*человек, рисовавший голых баб на всех уроках, начиная с первого класса*
Я не понимаю этих сложных слов, но щас покажу это умному братишке, чтобы он попытался обьяснить :D
Спасибо тебе за труды. Возвращение там никакое не нужно, полет снаряда в один конец
Отредактирован MpW
wayMax - максимальная точка (ставите нужный размер длины дуги)
wayMin и wayMax образуют отрезок (длину дуги)
wayNow - текущее положение точки
resultMin - минимальная высота
resultMax - максимальная высота
карта