![]()
Ninbous
Jass progress >>>>>35/100
![]() ![]() offline
Опыт:
5,674Активность: |
Невесомость
Какую формулу движения нужно написать, чтобы симитировать поведение невесомости? Юнит должен двигаться несмотря на свою точку поворота, и может сопротивляться, но с инерцией.
Каждые 0.05 сек нужно двигать юнита относительно той точки где он был 1 секунду назад и находится сейчас допустим... А вот формулу сообразить немогу =/
|
![]() |
#1
+0/−1
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
ShamaN26
![]() ![]() offline
Опыт:
9,546Активность: |
call MoveLocation(p, GetLocationX(p) + 20 * CosBJ(a), GetLocationY(p) + 20 * SinBJ(a)) move u, p вродь так можно =) где а растояние между р1 и р2 где р1= позиция твоего юнита а р2 то куда двигаеш |
![]() |
#2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Ninbous
Jass progress >>>>>35/100
![]() ![]() offline
Опыт:
5,674Активность: |
Точку p2 (куда двигать) мне и нужно рассчитывать, она не известна вначале и не будет постоянной. и функция MoveLocation не подходит, потому что юнит не сможет ходить если его двигать не через SetUnitX/Y |
![]() |
#3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Hellfim
Новичок
![]() ![]() offline
Опыт:
80,866Активность: |
Ложь. SetUnitPosition (unit, x, y) очень даже. В состоянии невесомости ты будешь двигаться в любом направлении, пока не упрешься в препятствие, когда ты упираешься в препятствие, то происходит практически абсолютно упругий удар, так что тебе подойдет:
|
![]() |
#4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Ninbous
Jass progress >>>>>35/100
![]() ![]() offline
Опыт:
5,674Активность: |
Согласен, но нужно чтобы, юнит если будет бежать против угла angle, то нужно затухание скорости и через какойто промежуток времени он остановится и будет перемещяться уже в сторону угла поворота юнита. (Как скольжение на льду, инерция) Нужно поидее менять циферку 20 |
![]() |
#5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
agentex
![]() offline
Опыт:
34,534Активность: |
ну нужно ввести доп переменную - угол движения. А в таймере движения задать условие если скорость <=10 к примеру, устанавливать эту переменную равной повороту юнита. Таким образом пока юнит не остановится он будет двигатся в сторону, куда был повернут в начале движения. |
![]() |
#6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|