Diaboliko
Silenced by Diaboliko
offline
Опыт:
16,108Активность: |
Увеличение скорости юнита без изменения пройденной дистанции
Задача-увеличивать скорость юнита с периодом q, чтоб общее расстояние, пройденное за секунду, увеличивалось на z едениц. Всё не могу понять что ж за прогрессия такая :3 |
25.07.2012, 19:33 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Xipxop
Круче варика, только c++!
offline
Опыт:
7,646Активность: |
Арифметическая
Глобальная переменная которую увеличиваешь на Х число каждый раз и когда надо обнуляешь И каждую сек делаешь, скорость юнита равной Х |
25.07.2012, 19:35 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Diaboliko
Silenced by Diaboliko
offline
Опыт:
16,108Активность: |
Так казус именно в периоде, он не равен 1 секунде. 0.1, например. |
25.07.2012, 19:37 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Nerevar
I'll be back!
offline
Опыт:
18,352Активность: |
Арифметическая прогрессия закрыто |
25.07.2012, 19:50 | #4
+0/−1
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
online
Опыт: отключен
|
Diaboliko, чтобы сделать период, создай глобалку "LOOP_PERIOD = 0.04" потом допустим у тебя speed = 5 м/с
в коллбеке делаем (положение типа в метрах например) set x = x + (speed * LOOP_PERIOD) * ну тут косинусы всякие и другие вектора
пускаем таймер с периодом LOOP_PERIOD
ScorpioT1000 добавил:
ScorpioT1000 добавил:
вот пример из jc ScorpioT1000 добавил:
вот акселерация еще тебе, тут много всего, но суть ясна - помимо координат храним динамический множитель от 1 (норм состояние) до MAX
Отредактировано ScorpioT1000, 25.07.2012 в 20:11. |
25.07.2012, 20:02 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Diaboliko
Silenced by Diaboliko
offline
Опыт:
16,108Активность: |
Скорп, период изменения скорости и движения различны. Наглядно: юнит должен проходить 300+60/сек расстояния. Движение происходит каждые 0.02 сек, скорость меняется каждые 0.1 сек. |
25.07.2012, 20:03 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
online
Опыт: отключен
|
ну так у меня за это функция отвечает
set Step = GetJackSpeed()*TPC_Moving_Period GetJackSpeed() возвращает скорость Джека, а я ему могу в любом триггере менять как хочу и всё будет ок
ScorpioT1000 добавил:
Step это по сути и есть скорость тока не точек в секунду, а точек в такт функции ScorpioT1000 добавил: сделай 2 триггера - главный работает с математикой, берет все значения из функций, другие уже оперируют данными - скорость итп |
25.07.2012, 20:08 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Diaboliko
Silenced by Diaboliko
offline
Опыт:
16,108Активность: |
Я так и не понял как меняя скорость раз в X секунд, при том двигая юнита раз в Y секунд, пройти Z точек. Как Я понял, то, что было скинуто про джека, вообще не расчитано на изменение скорости, а асселерейшн с поворотом-без фул кода понять сложно. |
25.07.2012, 20:21 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
online
Опыт: отключен
|
что именно здесь неясно? |
25.07.2012, 20:41 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Diaboliko
Silenced by Diaboliko
offline
Опыт:
16,108Активность: |
Что есть GetJackSpeed(), кодом? Как Я понимаю, мы двигаем, допустим, с целью получить 60 точек, юнита каждые 0.02 сек на 1.2 точки в твоем случае. |
25.07.2012, 20:53 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
online
Опыт: отключен
|
есть 2 независимые вещи:
в чем беда? 1 всеравно чаще 2, все нормально |
25.07.2012, 21:13 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Diaboliko
Silenced by Diaboliko
offline
Опыт:
16,108Активность: |
-_- Как планируется подгонять эту фигню под конкретные значения? В моем случае юнит двигается на скорости 60(+30 за лвл способности)+20(+5 за лвл способности)/сек. То есть на 8 уровне скила, он же последний, юнит должен пройти 360 за 1ю секунду, еще 420, всего 780 за вторую секунду. |
25.07.2012, 21:19 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
online
Опыт: отключен
|
А это функцией спелла задается? я думал у тебя просто произвольное движение игроком и скорость меняем. тогда да, тут пофиг, все делается в 1 - задаем акселератор на нужные значения и дальше как хочешь |
25.07.2012, 21:22 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|