Borodach
offline
Опыт:
6,292Активность: |
Как исправить сбой подсчета чисел?
Вот система подсчета
И если передавать значение больше 150, то возвращает далеко не верное значаение.
» code
Если это внутри игровая ошибка, то можно ее как то избежать?
Отредактировано DragonSpirit, 28.03.2013 в 17:02. |
28.03.2013, 13:51 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
Есть мнение, что это какая-то ущербная система, что она делает? |
28.03.2013, 20:25 | #2
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Borodach
offline
Опыт:
6,292Активность: |
ScorpioT1000, Высчитывает скорость анимации в зависимости скорости атаки |
28.03.2013, 22:55 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Variecs
offline
Опыт:
2,508Активность: |
а AnSpeed зачем?
|
28.03.2013, 23:42 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Borodach
offline
Опыт:
6,292Активность: |
Variecs, Скорость анимации у юнита. Чтоб не было лишний информации я поставил какое уже задано юниту, 0.350 Отредактировано Borodach, 29.03.2013 в 00:19. |
28.03.2013, 23:56 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
agentex
offline
Опыт:
34,534Активность: |
лол? ну хз я это делал в одно действие когдато, зачем тут цикл вобще |
29.03.2013, 01:04 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
это обычно синусом делается идк
ScorpioT1000 добавил: кароче говоря, напиши мат. формулу, мне лень разгребать, что должно быть |
29.03.2013, 01:55 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Borodach
offline
Опыт:
6,292Активность: |
agentex:
Так напиши каким ScorpioT1000: Суть в том, что каждое следующие число, будет меньше на 1% предыдущего. 0.350 * 1% = 0.0035, 0.350 - 0.0035 = 0.3465 Я так понимаю что так превышается лимит чисел. Отредактировано Borodach, 29.03.2013 в 08:07. |
29.03.2013, 08:01 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
хорошо, спрошу иначе
покажи на нескольких примерах, что ты передаешь в функцию и что хочешь получить |
29.03.2013, 13:31 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Borodach
offline
Опыт:
6,292Активность: |
ScorpioT1000, AtSpeed - текущая скорость атаки, AnSpeed - Анимация точки повреждения У "Гороного короля" стандартная скорость точки повреждения равна 0.350, а при получении предметов повышающих скорость атаки, это число уменьшается. В начале атаки, я передаю "Анимацию точки повреждения" атакующего и его текущую скорость атаки. Это вычисление должно возвращать через какое время Атакованый получит урон. Но если скорость атаки превышает ~150, то вычисления уже не верные. |
29.03.2013, 14:32 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
так тут математика, причем тут циклы я так и не понял) |
29.03.2013, 15:10 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Borodach
offline
Опыт:
6,292Активность: |
ScorpioT1000, Я в математике не силен, мне в голову не пришла математическая формула. Если не сложно, скажи каким образом мне высчитать. |
29.03.2013, 16:02 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
тебе просто надо 3 входных параметра:
и тогда уже можно делать вычисления, простая зависимость
и тогда будет так
она возвращает Анимация точки повреждения, которая действительно сейчас у юнита |
29.03.2013, 16:21 | #13
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Borodach
offline
Опыт:
6,292Активность: |
ScorpioT1000:
То есть юнит с скоростью атаки 150 будет медленнее юнита со скоростью 110? Или я снова туплю и не уловил твою мыслю? |
29.03.2013, 19:07 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
ну например у него изначально скорость анимации 0.35, атаки 100, но в игре она стала 150, ты вызвал эту функцию (100, 0.35, 150), функция отдаст тебе 0.525, т.е. да, скорость быстрее получается
если надо медленней, то вот (делим наоборот):
|
29.03.2013, 19:12 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Borodach
offline
Опыт:
6,292Активность: |
ScorpioT1000, Все равно возвращает не те числа которые нужны.
Для примера Горный король с Анимацией точки повреждения = 0.350 При атаке к примеру с перчатками скорости +15%, Анимация точки повреждения уже = 0.302
При атаке к примеру с перчатками скорости +30%, Анимация точки повреждения уже = 0.267
Вот мне нужно узнать формулу, уменьшения времени, Анимации точки повреждения, в зависимости скорости атаки. Может карта, даст тебе больше информации, какая именно формула нужна. Отредактировано Borodach, 29.03.2013 в 21:07. |
29.03.2013, 20:55 | #16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Variecs
offline
Опыт:
2,508Активность: |
Borodach, это замечательно, но в функции НЕ ИСПОЛЬЗУЕТСЯ AnSpeed.
|
29.03.2013, 23:46 | #17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Borodach
offline
Опыт:
6,292Активность: |
Variecs, Я просто уже написал значение которое передается как AnSpeed, 0.350 |
29.03.2013, 23:55 | #18
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Variecs
offline
Опыт:
2,508Активность: |
Borodach, это для теста или для наглядности сделано? Потому что выглядит как типичный индусский код.
Формула записывается гораздо проще: умножаешь AnSpeed на 0,99 в степени AtSpeed, благо для степени есть нативка. Глядишь, и ошибка пропадёт. Да и кода заметно меньше. |
30.03.2013, 00:03 | #19
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Borodach
offline
Опыт:
6,292Активность: |
Variecs, Пробовал умножать на 0.99. Сбоя не дает, но считает с небольшим уклонением (хотя логически одинаковые должны быть) |
30.03.2013, 00:08 | #20
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|