XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
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
XOR

offline
Опыт: 38,159
Активность:
Пробуем сами, пробуем, и читаем 200 раз статьи перед тем как идти на форум.
Старый 07.02.2010, 14:44
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 18:28.