Сейчас 04:55:37 Суббота, 23 ноября, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Скольжение юнита по льду
Hunter342Дата: Вторник, 24 Июня 2014, 13:27:30 | Сообщение # 1
1 уровень
Группа: Пользователи
Сообщений: 9
Награды: 0
Репутация: 0
Блокировки:
Как заставить юнита скользить по льду?
 

OverkillsДата: Вторник, 24 Июня 2014, 15:13:16 | Сообщение # 2
Группа: Проверенные
Сообщений: 1785
Награды: 0
Репутация: 880
Блокировки:
Двигать триггерно.

 

ExtrematorДата: Четверг, 26 Июня 2014, 16:20:09 | Сообщение # 3
10 уровень
Группа: Проверенные
Сообщений: 3199
Награды: 0
Репутация: 1018
Блокировки:
можно сделать, например так

в конкретный момент получаем угол толчка, цель, и некую силу толчка...
периодически двигаем цель под углом, и постоянно ослабляем силу ... set Power = Power * 0.96
когда сила упадёт ниже некой отметки ( например if Power < 1. ) то останавливаем всё...

двигать придётся по XY, а это либо делать CS, либо вовсе писать на Jass'е
хотя не всякий сможет сделать это на GUI с CS, и предпочтёт Jass-вариант

Добавлено (26 Июня 2014, 16:20:09)
---------------------------------------------
Хотя... такие импульсы могут перекрываться, и выглядеть может не очень опрятно... но попробовать (поэкспериментировать) думаю всё же стоит

 

SirNikolasДата: Четверг, 26 Июня 2014, 18:34:03 | Сообщение # 4
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Здесь и далее под вектором подразумевается пара чисел (x, y).

При толчке с юнитом ассоциируются (каким-нибудь образом) два вектора: вектор скорости (v) и вектор ускорения (a), направленный в противоположную сторону. Если юнит должен иметь начальную скорость v0 и угол α, то vx = v0 * cos α; vy = v0 * sin α. Координаты вектора ускорения расчитываются аналогично. При каждом тике таймера юнит смещается на значения v, а сам v изменяется на a (сложение векторов, соответствующие координаты складываются). Когда квадрат длины v (vx * vx + vy * vy) станет меньше некоторого значения, юнита следует остановить.

Если юнита толкает, когда он уже находится в движении, то старые и новые векторы скорости и ускорения просто складываются между собой.


 

  • Страница 1 из 1
  • 1
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz