Ninbous
Jass progress >>>>>35/100
offline
Опыт:
5,674Активность: |
Невесомость
Какую формулу движения нужно написать, чтобы симитировать поведение невесомости? Юнит должен двигаться несмотря на свою точку поворота, и может сопротивляться, но с инерцией.
Каждые 0.05 сек нужно двигать юнита относительно той точки где он был 1 секунду назад и находится сейчас допустим... А вот формулу сообразить немогу =/
|
22.11.2010, 11:16 | #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 то куда двигаеш |
22.11.2010, 11:22 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Ninbous
Jass progress >>>>>35/100
offline
Опыт:
5,674Активность: |
Точку p2 (куда двигать) мне и нужно рассчитывать, она не известна вначале и не будет постоянной. и функция MoveLocation не подходит, потому что юнит не сможет ходить если его двигать не через SetUnitX/Y |
22.11.2010, 11:36 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hellfim
Новичок
offline
Опыт:
79,880Активность: |
Ложь. SetUnitPosition (unit, x, y) очень даже. В состоянии невесомости ты будешь двигаться в любом направлении, пока не упрешься в препятствие, когда ты упираешься в препятствие, то происходит практически абсолютно упругий удар, так что тебе подойдет:
|
22.11.2010, 12:07 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Ninbous
Jass progress >>>>>35/100
offline
Опыт:
5,674Активность: |
Согласен, но нужно чтобы, юнит если будет бежать против угла angle, то нужно затухание скорости и через какойто промежуток времени он остановится и будет перемещяться уже в сторону угла поворота юнита. (Как скольжение на льду, инерция) Нужно поидее менять циферку 20 |
22.11.2010, 13:09 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
agentex
offline
Опыт:
34,534Активность: |
ну нужно ввести доп переменную - угол движения. А в таймере движения задать условие если скорость <=10 к примеру, устанавливать эту переменную равной повороту юнита. Таким образом пока юнит не остановится он будет двигатся в сторону, куда был повернут в начале движения. |
22.11.2010, 14:47 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|