velmir
offline
Опыт:
8,257Активность: |
Параболический прыжок - ???
И так в чем сама проблема есть ландшафт ват он pp.vk.me/c619521/v619521284/29294/u41z-9PZ8PM.jpg
как вы поняли внутри камней блокиировка пути(суша) также имеется рабочий параболический прыжок на джасе, с указываньем точки позиции прыжка.. так вот в чем собственно вопрос, как сделать так чтобы навидя даный спел на камень(в котором в нутри блокровка пути) нас не кидало внутрь камня.. также высылаю и код прыжка, пробывал в нем, написать проверку, на наличия в радиусе етого декора, но наверно гдето ошибка.
» код прыжка
struct Jamp_Data
private static timer t = CreateTimer() private static integer Data[] private static integer Count = -1 unit u real targetX real targetY real unitX real unitY real DistH real speed = 5.00 real Height = 6.12 real Angle real Distance real tempPointX real tempPointY real d real unitH real upH real dawnH real DistanceA boolean gah,fjamp rect RO real RJ=175 private method StopAction takes integer j returns nothing
set Data[j] = Data[Count] set Count =Count-1 u=null targetX=0 targetY=0 unitX =0 unitY=0 DistH=0 Angle=0 Distance=0 tempPointX=0 tempPointY=0 d=0 unitH =0 upH=0 dawnH =0 fjamp=false if Count == -1 then call PauseTimer(t) endif endmethod private static method JampAnaliz takes nothing returns nothing local thistype this if GetDestructableTypeId(GetEnumDestructable()) == 'YTpc' { fjamp=true } endmethod private static method JampTaimer takes nothing returns nothing
local thistype this local integer i = 0 loop exitwhen i > Count set this = Data[i] unitX=GetUnitX(u) unitY=GetUnitY(u) set RO = Rect(unitX - RJ, unitY - RJ, unitX + RJ, unitY + RJ) call EnumDestructablesInRect(RO, filterEnumDestructablesInCircleBJ, function thistype.JampAnaliz) call RemoveRect(RO) set RO=null if fjamp==false{ tempPointX = GetUnitX(u) + speed * Cos(Angle * bj_DEGTORAD) tempPointY = GetUnitY(u) + speed * Sin(Angle * bj_DEGTORAD) } unitH = GetUnitFlyHeight(u) Distance++ if Distance<=d then upH = unitH + Height call SetUnitFlyHeight(u,upH,unitH) else dawnH = unitH - Height call SetUnitFlyHeight(u,dawnH,unitH) endif unitH = GetUnitFlyHeight(u) if Distance>0.00 and GetUnitState(u, UNIT_STATE_LIFE) != 0 and Distance <= DistanceA and fjamp==false then call SetUnitX(u,tempPointX) call SetUnitY(u,tempPointY) else call SetUnitFlyHeight(u,0,0) call UnitRemoveAbility(u, 'JUMP') call SetUnitPathing(u, true) call StopAction(i) call destroy() endif set i=i+1 endloop endmethod public static method Jamp_Init takes unit Caster,real x,real y,real ug returns nothing local thistype this = thistype.create() set Count=Count+1 set Data[Count] = this fjamp=false u=Caster targetX = x targetY = y unitX = GetUnitX(u) unitY = GetUnitY(u) Angle = ug call SetUnitFacing(u, Angle) DistH = SquareRoot((targetX - unitX) * (targetX - unitX) + (targetY - unitY) * (targetY - unitY)) if DistH>320{DistH=320} call SetUnitPathing(u, false) call UnitAddAbility(u, 'JUMP' ) Distance=0 DistanceA=DistH / speed d = DistanceA / 2 unitH = GetUnitFlyHeight(u) if Count == 0 then call TimerStart(t, 0.01, true, function thistype.JampTaimer) endif endmethod endstruct зы разумеется ето сам код прыжка, сам запускатор и так понятен, прыжок рабочий тока вот неправдоподобно пашет яб сказал
velmir добавил: блин теги не работают ( Отредактировано velmir, 07.09.2014 в 23:26. |
07.09.2014, 21:39 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hate
конь вакуумный
offline
Опыт:
43,117Активность: |
Hate добавил: пробовал поставить на камень невидимую платформу? |
07.09.2014, 23:13 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
velmir
offline
Опыт:
8,257Активность: |
мне ненужно чтоб по поверхности камня можно было ходить, нада чтоб прыжок прекращялся как таковой, в моем случае нада чтоб "fjamp=false" |
07.09.2014, 23:25 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hate
конь вакуумный
offline
Опыт:
43,117Активность: |
так как можно будет ходить если обнести камень блокираторами? |
07.09.2014, 23:26 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
velmir
offline
Опыт:
8,257Активность: |
перепрыгнув блокираторы что стоят вокруг камня.. прыжок кидает в нутрь даже к примеру квадратной области которая полностью с квадратов состоит |
07.09.2014, 23:31 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hate
конь вакуумный
offline
Опыт:
43,117Активность: |
я решал невозможность прыжка рассчетом всего пути прыжка и выставлении конечной точки перед препятствием которое невожможно перепрыгнуть, другой выход у меня был проверять на проходимость и не пускать дальше если тип проходимости полета был неразрешен |
08.09.2014, 00:04 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
velmir
offline
Опыт:
8,257Активность: |
Hate:
я тоже проверяю на проходимойсть(ищю блокиратор пути в радиусе. тока вот гдето в коде ошибка, по тому как функция ответа на наличие преграды не работает |
08.09.2014, 00:16 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hate
конь вакуумный
offline
Опыт:
43,117Активность: |
|
08.09.2014, 00:18 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
velmir
offline
Опыт:
8,257Активность: |
velmir:
а ето что? velmir добавил:
или есть иная функция какая то? для анализа самой почвы velmir добавил: if ( not ( IsTerrainPathableBJ(GetUnitLoc(GetTriggerUnit()), PATHING_TYPE_WALKABILITY) == true ) ) then не оно? |
08.09.2014, 00:23 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Ancient
Щпаовапа
offline
Опыт:
38,370Активность: |
IsTerrainPathableBJ инверсная функция, надеюсь ты помнишь об этом. |
08.09.2014, 00:30 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
velmir
offline
Опыт:
8,257Активность: |
канешн, просто скопировал функцию с редактора а так сделаю как нада
а все разобрался не ту переменую ++ Отредактировано velmir, 08.09.2014 в 01:16. |
08.09.2014, 01:01 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
если прыжок умный (работает в 3D), то просто поставь платформы на большой высоте и он должен в них ударяться, думая, что это стена |
08.09.2014, 10:02 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
velmir
offline
Опыт:
8,257Активность: |
увы ни какими образами не работает именно так как нада,...
ScorpioT1000: ну ставил высоту гдето под 600 velmir добавил: в принцепи могу сделать видео роботоспособности с пела и собственно самых проблем с блокираторами пути |
08.09.2014, 20:19 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
velmir
offline
Опыт:
8,257Активность: |
проблема решина можна закрывать |
19.09.2014, 21:00 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,184Активность: |
как и чем, решение в студию. |
20.09.2014, 05:43 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
velmir
offline
Опыт:
8,257Активность: |
самым простым с джсовой структуры дал сылку на работоспособную проверку декора на гуи, не самое оптимально решене но работает |
21.09.2014, 12:27 | #16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|