Добавлен Sergey105
Возникла проблема с xy некогда ранее не сталкивался с ней и не нуждался в ней. Короче делаю атаку создается dummy под тип снаряда и летит в цель но появилась нужда немного изменять координаты появления dummy в зависимости от угла поворота героя атакующего цель и нужно так чтобы dummy появлялся допустим с X=X-100.Y координатами. Изначально X = GetUnitX(Герой) и я смещаю ещё на 100 ед но с учетом куда повернут герой . Мне трудновато объяснить письменно постарался изобразить на paint
Принятый ответ
Да я как-то тоже столкнулся с такой проблемой и вот так решил, за основу взял не свою созданную способность. В карте всё наглядно показано, вот только на ГУИ.
Загруженные файлы
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Y = Y + dist * sin( rad )
Dist - расстояние на которое вы хотите сместить даммика, rad - угол в радианах. Чтобы сместить дамика влево или вправо от героя, добавьте к его углу поворота 90 градусов, ну или вычтите их. Как перевести градусы в радианы думаю вы знаете.
Отредактирован Maniac_91
Хотя с градусами и радианами мог перепутать.
x допустим я смещаю на 100 , а y на 1
и при определенных градусах все работает но при некоторых атакует с неверной стороны
x = GetUnitX(sa.at1);
y = GetUnitY(sa.at1);
a = GetUnitFacing(sa.at1)
x = x + 100 * CosBJ(a - 1.57079632679)
y = y + 1 * SinBJ(a - 1.57079632679)
Отредактирован Maniac_91
y = y + 100 * SinBJ(a - Deg2Rad(90))
Maniac_91, я делаю примерно как в стандартном редакторе
Отредактирован Maniac_91
Sergey105, ты же знаком со структурами?
сними только работаю
Отредактирован Maniac_91
В полярных координатах это то же самое, что угол -90 и расстояние 100.
Отредактирован Clamp
Отредактирован Clamp
и да мне бы желательно вне зависимости от таргета
а именно от радиуса поворота героя
Отредактирован Doc
Отредактирован Clamp
x = GetUnitX(sa.at1);
y = GetUnitY(sa.at1);
angle_x = GetUnitFacing(sa.at1) + 90
angle_y = GetUnitFacing(sa.at1) + 180
x = x + DB.x_model * Cos(angle_x * bj_DEGTORAD);
y = y + DB.x_model * Sin(angle_x * bj_DEGTORAD);
sa.dummy = NewDummy('hhes', x, y);
x = GetUnitX(sa.dummy) + DB.y_model * Cos(angle_y * bj_DEGTORAD);
y = GetUnitY(sa.dummy) + DB.y_model * Sin(angle_y * bj_DEGTORAD);
SetUnitX(sa.dummy,x)
SetUnitY(sa.dummy,y)
могу изменять и по X и по Y
в данный момент я в них но особо разобрался
Clamp, если я пока не понимаю то и делать на этом не смогу
Clamp, и да спасибо за помощь и потраченное время на меня