Skino
offline
Опыт:
4,683Активность: |
Движение снарядов по прямой.
Статья рассчитана на новичка и неиспользует всякие там вектора и прожектора.
Эта система использует одну функцию для передвижения, дамми юнитов, с разной скоростью, разным уроном, всем разным... В данном примере я покажу как я сделал дамми юнит в виде рокеты... Система работает только на версии 1.24+
Итак! нам понадобяться:
Давайте для начало упростим мне написание стать, а именно сокращения:
Д.Ю. = дамми юнит = снаряд Запомнили? Тогда идём дальше.
Редактор объектовДля движения Д.Ю. нам нужно что? Конечно же сам Д.Ю., давайте сначало его создадим, это нехитрая операция, для этого нужно всего изменить пару параметров обычного юнита, (я предпочитаю использовать юнита "Ядовитое облоко" он находится: Нежить => Особые войска) а именно:
Идём снизу вверх
(Строго соблюдайте все вышеуказанные параметры)
Отлично! Теперь наш Д.Ю. "готов к употреблению".
Кастом кодДля начала давайте разберемся с кастом кодом карты, туда необходимо вставить функции необходимые для движения Д.Ю.
Смотрим:
L - для дальнейшего определения высоты рельефа
HT - для аттача к юниту всего необходимого G - в моей системе юниты выбираются не путём перебора массивов, а путем выбора каждого юнита из группы
Функция для определения высоты рельефа
Функция уничтожения Д.Ю.
Универсальная функция для передвижения юнита в пространстве (очень удобно)
Создание дамми юнитаТеперь основа: создание самого дамми юнита.
Для этого создайте пустой триггер с названием "RocketCreate" и скопируйте в него код:
Данный триггер реагирует на приказ юниту типа "move" и т.п.
Данное событие срабатывает на ордеры паладина. Такс теперь в функции "Trig_CreateRocket_Actions" мы напишем код создания юнита, все что с ним связано.
Для начало нам нужно найти в пространстве самго юнита, скажем так стрельнувшего из рокета, вот и координаты:
Теперь таким же нехитрым способом находим координаты таргета(куда полетит Д.Ю.) и координаты создания самого Д.Ю.:
а - направления от юнита до точки ордера
50.00 - расстояния от юнита, до точки появления Д.Ю 60.00 - высота появления Д.Ю. Дальше когда мы имеем все координаты в пространстве, нам нужно знать расстояние между ними (t и r), тоже конечно в пространстве:
И вот теперь мы высчитываем шаги Д.Ю. в пространстве по формуле ниже:
50.00 - расстояния за 1 шаг (скорость)
Теперь создаём юнита:
Где "u000" это рав код вашего созданого юнита (увидить его можно нажав Ctrl+D в РО)
Теперь устанавливаем Д.Ю. высоту, добовляем в группу, аттачим к нему шаги по X, Y и Z
Вот и готов тригер по созданию Д.Ю.
ПередвижениеТеперь основа всей системы "Движочек"
Опять создаем триггер и называем его "BullMove" конвертируем в текст, очищяем и вставляем:
Этот триггер каждые 0.025 секунд делает действя для каждого юнита в группе G.
Сами действия это "Bull_Move_G" пока они пустые, но щяс их наполним:
Узнаем координаты юнита в пространстве, и с помощью аттача узнаем шаги юнита в пространстве.
Теперь имея координаты и шаги, высчитываем его следующее положение в пространстве
Проверяем высоту на проходимость, и если всё ок, то двигаем
Вот и всё, проверьте ещё разочек код, и можно проверять карту(незабудте закинуть на карту паладина, тригер создания реагирует именно на его действия), далее я выложил свой пример, качаем и лишний раз убеждаемся что всё работает, (ходить на стрелках).
Коментим, дополняем, попровляем! Из-за негодования некоторых пользователей XGM статья приняла иную форму. Отредактировано Skino, 11.02.2010 в 13:35. |
10.02.2010, 08:20 | #1
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Rewenger
The culprit will not die
offline
Опыт:
35,873Активность: |
Skino, они просто движутся по прямой в пространстве?.. Т.е. отлов столкновения в дестрактеблы и юнитов пишем сами?) |
10.02.2010, 08:55 | #2
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Skino
offline
Опыт:
4,683Активность: |
Скачай посмотри, ну а вообще ты прав, столкновения пишите сами, ибо у каждого свои условия. У меня столкновения я бы сказал показательные... |
10.02.2010, 08:57 | #3
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Rewenger
The culprit will not die
offline
Опыт:
35,873Активность: |
Зачем качать, если ты код выложил? Отличать функции отлова столкновений с юнитами от других я пока не разучился. *) А вообще, без столкновений с объектами полезность этого сомнительна. Кажется, в барахолке должно быть ещё полным-полно таких. Несколько взаимоисключающие пункты. |
10.02.2010, 09:02 | #4
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Skino
offline
Опыт:
4,683Активность: |
Знал бы ты сколько новичков молится на такие системы? После прочтения, ко всем мечтателям о шутерах придёт муза =) Столкновения там есть! Более сложные пишите сами! их писать нефиг делать даже на гуи |
10.02.2010, 09:05 | #5
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
MF
Что-то вокруг не так
offline
Опыт:
26,594Активность: |
Итак:
MF добавил: Общее мнение... низачот. |
10.02.2010, 11:54 | #6
+1/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
FellGuard
Losyash
offline
Опыт:
39,547Активность: |
Отредактировано FellGuard, 10.02.2010 в 12:09. |
10.02.2010, 11:57 | #7
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
agentex
offline
Опыт:
34,834Активность: |
...и сразу fail ахаха.. дальше можно нечитать Отредактировано agentex, 10.02.2010 в 12:07. |
10.02.2010, 12:00 | #8
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
FellGuard
Losyash
offline
Опыт:
39,547Активность: |
Кстати, да, перерасчёт статической траектории многократно во время движения это совсем совсем не хорошо) Линейная траектория считается один раз.
FellGuard добавил: Поправляй, пока что статья очень сырая. |
10.02.2010, 12:08 | #9
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
MF
Что-то вокруг не так
offline
Опыт:
26,594Активность: |
По сути статья такого рода не нужна, Нкраш довольно таки неплохо написал о мувинг системах несколько ранее и более человеческими методами. |
10.02.2010, 12:29 | #10
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Skino
offline
Опыт:
4,683Активность: |
Этого тут вообще не должно быть, это идет как показательный довесок. Пусть будет, статья для новичков поэтому лучше перестраховаться. Тогда нужно задавать не 0 а хотябы 0.05 Skino добавил:
С учётом динамического изменения ландшафта? Могу поспорить там наверное ещё и без массивов не обходится. |
10.02.2010, 14:53 | #11
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
DioD
offline
Опыт:
45,134Активность: |
ересь если честно, 3д движение пишется на векторах и никак иначе. |
10.02.2010, 16:49 | #12
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Skino
offline
Опыт:
4,683Активность: |
Читаем для кого статья, + я её доработаю завтра. и сделаю некое подобие векторов. |
10.02.2010, 17:22 | #13
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
DioD
offline
Опыт:
45,134Активность: |
да хоть на 1% знаешь джаз, 3Д движение делается на векторах даже на гуи. |
10.02.2010, 17:43 | #14
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
adic3x
offline
Опыт:
108,439Активность: |
вступление нам как бы намекает, что человек даже не знает, как правильно писать слово жасс (джасс), или по русские пдсс (просто другая система сценариев) ADOLF добавил:
oh shi~ ADOLF добавил:
double oh shi~ ADOLF добавил:
а чего нельзя двигать юнита по координатам 0.? мда, "вы все нешарите" © ADOLF добавил:
последний вопрос - почему юзаете триг место таймера? ADOLF добавил:
косячно, не юзайте ее ADOLF добавил:
вы об этом так говорите, как будто в массивах есть что то плохое |
10.02.2010, 22:48 | #15
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
DioD
offline
Опыт:
45,134Активность: |
можно подвести этог фразой "выпиливайте эту ересь как автор исправит пусть постит опять".
вот только адвансед уровень описан в статье про ньютонову механику, а лоу левел пишется на гуи. |
11.02.2010, 05:09 | #16
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Skino
offline
Опыт:
4,683Активность: |
Шанс что при движенни выпадит 0.00 равна 0.01% Опять же, этого тут недолжнобыть, это просто как показательный довесок |
11.02.2010, 07:28 | #17
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
MF
Что-то вокруг не так
offline
Опыт:
26,594Активность: |
Skino:
Шанс несколько больше или несколько меньше... но тем не менее. Не вижу смысла в этом бреде... хотя можешь выводить на экран в случае выпадения "О да! Вы счастливчик!"... Тогда это будет оправдано. |
11.02.2010, 07:43 | #18
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
adic3x
offline
Опыт:
108,439Активность: |
спасибо, администрация долго смеялась над нелепейшем методом удаления неугодных автору комментариев.
самое забавное - что автор даже не удосужился хоть что то исправить в статье
продолжаем ловить лулзы в теме
предвидя его реакцию уточняю - да, я адский мудак |
11.02.2010, 10:51 | #19
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Toadcop
offline
Опыт:
54,313Активность: |
Цитата:
НЕТ ТЫ ! |
|
11.02.2010, 17:21 | #20
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|