16GB
GhostOne User
offline
Опыт:
59,317Активность: |
Движение дамми
Нужно что бы дамми двигался как на рисунке. Но мои попытки так сделать оказались неудачны снаряд как то дергается вообщем не то
вот карта если кто знает либо переделайте либо дайте формул какую или код |
15.02.2011, 15:51 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,184Активность: |
случайный вектор отклонение на случайное время. |
15.02.2011, 15:54 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
16GB
GhostOne User
offline
Опыт:
59,317Активность: |
любое движение может быть описано формулой я формулу и прошу |
15.02.2011, 15:56 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Rampage
Бицепс
offline
Опыт:
9,722Активность: |
Может стоит логическими попробовать, ну типо тру + к углу, фальш - к углу. А надо чтобы плавно или можно рывочками? |
15.02.2011, 15:56 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
16GB
GhostOne User
offline
Опыт:
59,317Активность: |
ты бы карту поглядел почти так я и делал |
15.02.2011, 15:57 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Rampage
Бицепс
offline
Опыт:
9,722Активность: |
А если в реальную запоминать, допустим, на сколько отклонился, и если на 120 (к примеру) то тру ставить и обнулять 120. С каждым прибавлением или отклонением от основного угла он будет двигаться в нужную сторону наискось, с определёнными ограничениями. |
15.02.2011, 16:01 | #6
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,184Активность: |
градус смещай 40-40 градусов каждые х секунд, так чтобы юнит за рамки 40-40 не выходил |
15.02.2011, 16:10 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
JimALIEN
вдупляет sc2 editor
offline
Опыт:
6,976Активность: |
set d = d + dist If d > maxd then set d = 0 set maxd = GetRandomReal(100,200) If a < 0 then set a = GetRandomReal(20,40) else set a = GetRandomReal(-20,-40) endif set MoveAngle = AngleBetweenPoints('позиция снаряда','целевая точка') + a endif d-пройденое растояние от последней смены направления dmax-растояние на которое снаряд будет лететь в сторону а-отклонение в градусах Каждый момент времени двигаем снаряд под углом MoveAngle на растояние dist. Пишу с мобилы поэтому очень ущербно, но надеюсь смысл ясен. Просто задаем растояние и угол отклонения и при достижении этого растояния повторяем. При растоянии до цели менее 200 (в данном случае) ставим а = 0. Ток это всеравно некрасивое движение, с плавным изменением круче имхо |
16.02.2011, 03:13 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,184Активность: |
вы точно таким же образом можете задать случайный вектор движения и применять его не мгновенно а в течении секунды, тогда юнит будет менять направление плавно, только по задаче синусойдой и не пахнет. |
16.02.2011, 03:30 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
16GB
GhostOne User
offline
Опыт:
59,317Активность: |
вроде получилось когда кастую влево или вправо то как надо если верх в низ то они слепливаются вместе снаряды
16GB добавил: хотя бы карту посмотрели :( |
16.02.2011, 17:13 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
16GB
GhostOne User
offline
Опыт:
59,317Активность: |
сделал так
можно закрывать |
16.02.2011, 21:10 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,184Активность: |
правильно делать - крепить к юниту один интегер - а всё остальное хранить в массивах, выигрышь в скорости по кешу 6 раз по хешу 2 раза.
|
17.02.2011, 09:05 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|