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

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

Ответ
 
TmaRT

offline
Опыт: 1,360
Активность:
Спел Снаряд удар в гору
Видел спелы где дамми снаряд летит прямо и при столконовение с возвышенностью он взрывается(или уничтожается) вобщем ФИЗИКА :)
Как такое сотворить со средними знаниями джасс пытался понять их код но там слишком замудрённо, так что если у каво есть время объесните пожалуста.
Старый 17.04.2008, 11:11
DFlyer
<3 MJ
offline
Опыт: 42,879
Активность:
Ну ты код сюда покажи, может объяснят.
Старый 17.04.2008, 11:22
adic3x

offline
Опыт: 108,439
Активность:
http://xgm.guru/forum/showthread.php?t=15889
тут пытался покапаться?) а, вижу, пытался)

ну смотри, что бы узнать высоту точки рельефа надо переместить точку по координатам и вызвать GetLocationZ (возращает риал - высоту терайна), просто сравнить координату Z снаряда и точку высоты рельефа

Цитата:
ФИЗИКА


вот такая ФИЗИКА большими буквами у Тс, у мну тока физика (маленькими) ;)

ADOLF добавил:
Цитата:
Сообщение от афтор спела в той теме по ссылке
код может показаться немного нечитаемым, если что неясно спрашивайте - поясню
Старый 17.04.2008, 11:26
TmaRT

offline
Опыт: 1,360
Активность:
ADOLF Именно я твой спелл уже вижел :)

TmaRT добавил:
Дня три назад ты уже мне его рекламировал )

TmaRT добавил:
Шас попробую втыкнуть свой код это посморим шо получится

"GetLocationZ (возращает риал - высоту терайна),"

TmaRT добавил:
ADOLF Помогло спасибо теперь по сложней :)

У меня дамми снаряд летит криво :(
из таво что я использовал это
Код:
"call IssuePointOrderLocBJ( dammy, "move", p2 )"


вобшем кратко нужно с А в Б перемешать юнита плавно ну как обычный снаряд
каким способом можна это реализовать оптимально и без утечек.

Отредактировано TmaRT, 17.04.2008 в 12:37.
Старый 17.04.2008, 12:14
adic3x

offline
Опыт: 108,439
Активность:
=)
ну я вообще делал через SetUnitX/Y т.к. вопервых у снаряда мб скорость переменная, т.е. там он тупо летит по одному трехмерному вектору, а в варе скорость насколько помню задается по двум осям, т.е. третья не учитывается

т.е. просто его мувить переодическим таймером

ADOLF добавил:
Цитата:
Дня три назад ты уже мне его рекламировал )

я его еще как минумум месяц буду всем в пример ставить)))

ADOLF добавил:
ну еще добавлю что сет юнит х и у позволяет делать снаряду любую скорость
Старый 17.04.2008, 13:12
TmaRT

offline
Опыт: 1,360
Активность:
ММ а как ты это обошол
Цитата:
Сообщение от Exploder статья Stomp Spell
SetUnitX/Y – Native функции SetUnitX и SetUnitY также меняют X и Y координаты юнита. Однако, юнит не прекращает двигаться, кастовать канальные спеллы и так далее, во время движения. Эти функции работают быстрее, чем SetUnitPosition, но если вы используете координаты за пределами карты, игра вылетит.


TmaRT добавил:
Если я правильно догадываюсь всегда надо учитовать размер карты так шоли
Старый 17.04.2008, 13:53
FellGuard
Losyash
offline
Опыт: 39,547
Активность:
просто либо создавать триггер, который будет регистрировать выход за пределы дпустимых значений границ всех юнитов, и двигать их назад, либо просто при SetUnitX/Y использовать условный оператор
Код:
set var = GetUnitX(unit)
if var>min_map_X and var<max_map_X then
  call SetUnitX(unit, value)
endif

// or

if var>-map_Xlim and var<map_Xlim then
  call SetUnitX(unit, value)
endif

Отредактировано FellGuard, 17.04.2008 в 14:55.
Старый 17.04.2008, 14:27
Toadcop

offline
Опыт: 54,313
Активность:
Цитата:
вот такая ФИЗИКА большими буквами у Тс, у мну тока физика (маленькими) ;)
- это когда написаны механические процессы на лол лвл языках (или по крайней мере не очень хай)
будет возможность напишу кастом мув движок объектов на С++ =) и запихаю процес движения объектов в 1 нативку =) ну это иная история.


TmaRT тебе нужно:
1) переодический таймер
2) "група" юнитов которую ты будеш переодически обрабатывать.
3) для того что бы снаряды двигались учитываю высоту зпуска надо ориентироватьса относительно глобально системы высоты (Z) это делаетьса с помощю получения высоты террайна + высоты полёта юнита. таким образом у нас есть точка ориентации =)
4) ну здесь уже логика =)
Старый 17.04.2008, 15:07
adic3x

offline
Опыт: 108,439
Активность:
Цитата:
Если я правильно догадываюсь всегда надо учитовать размер карты так шоли

смотри в моей карте cSetUnitX/Y
Старый 17.04.2008, 16:02
Ответ

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

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

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

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



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