Nerevar
I'll be back!
offline
Опыт:
18,352Активность: |
Помощь с прерываемым спелом
Решил я освоить ещё и написание прерываемых спелов,но столкнулся с проблемой - вместо 5 ожидаемых снарядов вылетает всего 1(в конце каста) и летит в рандомную сторону до упора карты.Писал спел 2.5 часа - уже не знаю что с ним сделать
Принцип действия таков - при начале использования магии создаю локальный тригер,добавляю в него 2 события на окончание каста,добавляю кондишн,в котором делаю действия(а именно установление переменной,отвечающей за конец каста и дестрой созданного тригера),также я запускаю таймер с периодом в 0.5 секунд,который устанавливает свои переменный(суть спела в том,что за каждые 0.5 секунды каста создаётся 1 ракета и летит в точку поворота каста,растоянием в 200*0.5(с каждым тактом таймера значение 0.5 увеличивается на 0.5)),затем в колбеке созданного таймера я проверяю не отработал ли он 5 раз,либо не прерван ли каст,если ещё не конец - то создание ракета-снаряда(а также создание для неё набора переменных,таких как угол,дистанция,создание таймера для ракеты,через который все эти значения передадутся,затем при движении ракеты - если растояние пройдено - то убить ракету-снаряд,создать на её месте дамика,кастующего топ))
Ещё если не сложно объясните более легкий способо осуществления такой задачи(если он есть) и укажите возможные утечки. |
24.07.2011, 21:20 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
16GB
GhostOne User
offline
Опыт:
60,317Активность: |
лучше проверить периодиком текущий приказ же, если он кастит этот приказ будет |
24.07.2011, 21:52 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Nerevar
I'll be back!
offline
Опыт:
18,352Активность: |
Вот заменил условие на то,при котором проверяется не переменная,отвечающая за конец\прерывание каста,а за текущий приказ юнита - стало вылетать 5 рокет(как и задумывалось),и летят они с интервалом в 0.5 секунды,правда после того как юнит закончил кастовать абилу и в разные стороны до упора карты,да и летят они не по параболе... |
25.07.2011, 13:40 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
agentex
offline
Опыт:
34,834Активность: |
для параболы и вобще 3д движения лучше использовать векторы. (возможностей куда больше, можно любую траекторию задать) |
25.07.2011, 14:42 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Nerevar
I'll be back!
offline
Опыт:
18,352Активность: |
Немного переделал код - теперь всё благополучно отменяется сменой приказа,вылетает 5 ракет,даже летят они по прямой - правда по неведомой причине всегда на разное расстояние(в разных четвертях карты на разное расстояние) - сделал чтобы при выпуске ракет выводило сообщение обо всем - номере ракеты,х и у кастера,расстояние полета ракет и угол(в радианах) В разных четвертях меняется лишь дистанция - зависимость должна быть 200,400,600,800,1000 - а с каждым кастом ракеты она ведет по разному - то 50,100,150,200,250,иногда даже в обратном порядке(!) - 1000,800,600,400,200 Уже не знаю даже что не так |
01.08.2011, 19:21 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|