AlexKARASb
Learning cpp
offline
Опыт:
22,103Активность: |
Парабола\обучение
Доброго всем времени суток
Для того чтобы сделать следующий спел мне нужно уметь построить параболу// это так отступление вопрос правильно ли я реализовал ее в следующем коде: » раскрыть function parabolatimer takes nothing returns nothing local timer t=GetExpiredTimer() local integer i=GetHandleId(t) local unit f=LoadUnitHandle(udg_Hash,i,120) local unit s=LoadUnitHandle(udg_Hash,i,121) local unit c=LoadUnitHandle(udg_Hash,i,122) local real xf=GetUnitX(f) local real yf=GetUnitY(f) local real xs=GetUnitX(s) local real ys=GetUnitY(s) local real X=LoadReal(udg_Hash,i,123) local real Y=LoadReal(udg_Hash,i,124) local real ang=LoadReal(udg_Hash,i,125) local real n=1 call SetUnitY(f,yf+(2*n)*(2*n)*Sin(ang*bj_DEGTORAD)) call SetUnitX(f,xf+(2*n)*Cos(ang*bj_DEGTORAD)) call SetUnitY(s,ys+(2*n)*(2*n)*Sin(ang*bj_DEGTORAD)) call SetUnitX(s,xs-2*n*Cos(ang*bj_DEGTORAD)) set n=n+1 if SquareRoot((xf-X)*(xf-X)+(yf-Y)*(yf-Y))>=1200 then call PauseTimer(t) call FlushChildHashtable(udg_Hash,i) set n=0 call DestroyTimer(t) endif endfunction function Trig_Parabola_Actions takes nothing returns nothing local timer t=CreateTimer() local integer i=GetHandleId(t) local unit c=GetSpellAbilityUnit() local real d=1200 local real X=GetUnitX(c) local real Y=GetUnitY(c) local unit f=CreateUnit(GetOwningPlayer(c),'h00B',X,Y,GetUnitFacing(c)) local unit s=CreateUnit(GetOwningPlayer(c),'h00B',X,Y,GetUnitFacing(c)) local real ang=GetUnitFacing(c) local integer sm=20 call SaveUnitHandle(udg_Hash,i,120,f) call SaveUnitHandle(udg_Hash,i,121,s) call SaveUnitHandle(udg_Hash,i,122,c) call SaveReal(udg_Hash,i,123,X) call SaveReal(udg_Hash,i,124,Y) call SaveReal(udg_Hash,i,125,ang) call TimerStart(t,0.05,true,function parabolatimer) endfunction я знаю тема для сферических движений есть, ну как вы поняли она сложна для меня(в ней используются библиотки которыми пользоватся еще я не умею) для этого и создал тему принцип построения параболы я выбрал верный или далеко ушел нетуда? использую таймер хотя в примерах используют циклы =\ |
07.02.2010, 14:33 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
XOR
offline
Опыт:
38,159Активность: |
Пробуем сами, пробуем, и читаем 200 раз статьи перед тем как идти на форум. |
07.02.2010, 14:44 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|