raic-2019 icon indicating copy to clipboard operation
raic-2019 copied to clipboard

Неправильные тайминги

Open ud1 opened this issue 5 years ago • 6 comments

Assault rifle должно стрелять раз в 600 микротиков, а на деле 601. Вызвано ошибками округления в таймерах, в конце, когда должен получаться 0, на деле получается малое число большее 0, и оно сжирает лишний микротик. Стоит вычитать у всех таймеров EPS (или перейти на целые времена измеряемые в микротиках, но это изменение сетевого протокола, вероятно нежелательно)

ud1 avatar Dec 01 '19 12:12 ud1

Да, сейчас для прыжков приходится тоже +1 добавлять. Вообще, уж платформер стоило бы сделать на целых числах целиком, чтобы раз и навсегда избавиться от ошибок округления.

MrSmile avatar Dec 01 '19 16:12 MrSmile

В добавок про эпсилоны. Не знаю пока как это может повлиять (наверное никак), но прибавлять эпсилоны к координатам и выносить это наружу, точно не стоило. Если это ради проверок на пересечение с тайлами, но эпсилоны можно прибавлять/отнимать только в момент проверки, в зависимости от того, левую/нижнюю или правую/верхнюю границу проверяем.

tyamgin avatar Dec 01 '19 18:12 tyamgin

Движение игрока я вчера вроде как точно восстановил, вроде явных огрехов не помню. А эпсилоны это пылинки так учитываются (хотя на деле скорей всего, чтоб батут не срабатывал, когда не надо), в принципе норм подход.

ud1 avatar Dec 01 '19 21:12 ud1

Кажется чем меньше использований EPS, тем лучше. Сейчас только там где иначе были бы явные косяки

kuviman avatar Dec 02 '19 20:12 kuviman

Ну тут явная ошибка, во всех таймингах таких как перезараядка оружия, время можно было измерять целыми числами в микротиках, но зачем-то сделали double, и из-за этого проблемы. Получается тут надо использовать поправки на eps.

ud1 avatar Dec 04 '19 06:12 ud1

Сейчас еще скажут, что у них и математики нет)

mortido avatar Dec 05 '19 14:12 mortido