Нужно оттолкнуть юнита на единицу, но именно назад (т.е. в противоположном от его направленности положении). Плохо понимаю как это реализовать. В примерах слишком много лишнего (хэш, таймеры, группы и т.д.), а мне всего лишь единичное действие.

Принятый ответ

Audes, просто написать
angle-=180
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
15
10 лет назад
Отредактирован Audes
0
Мне ничего умнее чем: создать дамми за нужным юнитом и двинуть юнита к дамми, не приходит в голову.
0
24
10 лет назад
0
Хеш и таймеры нужны для плавного перемещения юнита. Если тебе нужно просто мгновенно переместить его из точки в точку, то просто считаешь координаты и перемещаешь, если все-же хочется плавного сдвига - придется разбираться с примерами на хеше и таймерах.
Как получить нужные координаты - математика школьного уровня. Угол взгляда юнита получить можно, текущие координаты - тоже, дальше нехитрые вычисления и получаем смещение по каждой из двух осей, которое нужно добавить к текущим координатам чтобы получить новые, после чего перемещаем юнита в эти координаты одной функцией.
0
15
10 лет назад
Отредактирован Audes
0
prog, вот собственно с вычислением и проблема (никогда не дружил с математикой). Можно пример?
0
24
10 лет назад
0
Синус от угла по одной оси и косинус по другой, умножить на расстояние, не забыть использовать радианы с функциями, принимающими радианы, а градусы - с функциями, принимающими градусы (для перевода одно в другое есть константа). Должно быть и в примерах.
0
22
10 лет назад
Отредактирован Ledon
0
prog, можно сделать ещё проще: продвинуть юнита вдоль дистанции под углом в полярной системе координат при помощи функции Ремув юнит полар оффсет.
0
24
10 лет назад
0
Ledon, а утечки?
0
15
10 лет назад
0
Ledon, prog, как я далёк от того, что вы говорите (на первом курсе чудом сдал тригонометрию). Ну постараюсь поискать примеры.
prog:
умножить на расстояние
расстояние до чего?
1
26
10 лет назад
1
х + (range * Cos(angle * DEGTORAD))
y + (range * Sin(angle * DEGTORAD))
0
24
10 лет назад
0
Audes, расстояние, на которое производится сдвиг.
0
15
10 лет назад
0
Hate, почему-то ругается на отсутствие выражения. Погуглил, везед перед DEGTORAD стоит "bj_", но это не решает проблему.
0
24
10 лет назад
0
Audes, учти что x, y, range, angle - переменные и что это две отдельные строки кода, а не одна.
0
15
10 лет назад
0
prog, знаю, но всё равно ошибка.
0
26
10 лет назад
0
кидай скрин кода
0
28
10 лет назад
0
Audes, set поставил?
0
5
10 лет назад
0
Audes, А ты каким образом пишешь? Через SetUnitX и SetUnitY ?
И код ошибки сюда скинь!
0
15
10 лет назад
0
Hate, с радостью бы кинул, но я подумал, что редактор глючит, скачал JNGP... и теперь у меня нет карты. Бывает и такое( Timoxxx, сначала писал SetUnitX и Y соответственно, потом решил через точку (не помню дословно).
1
28
10 лет назад
1
x+=range * Cos(angle * bj_DEGTORAD)
y+=range * Sin(angle * bj_DEGTORAD)
1
26
10 лет назад
1
ваши карты скорее всего находятся на своем месте, вы скорее всего смотрели на последние открытые карты
0
28
10 лет назад
0
Hate, или не сохранили карту)
0
15
10 лет назад
0
nvc123, пропали все мои карты, находящиеся в папке Frozen Trone, а стандартные- нет. Hate, поиск по файлам говорит, что ярлык не найден. Ладно, всем спасибо за помощь!
nvc123, так отталкивает вперёд, а не назад, но я изменил += на -= и готово!
1
28
10 лет назад
1
Audes, просто написать
angle-=180
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.