Skip to content

Исправление скорости в состоянии покоя

На этой странице задокументировано решение проблемы ложных показаний скорости (1.57 м/с) при нахождении в состоянии покоя на блоках.


📊 Инфобокс исправления скорости покоя на земле

АспектУстаревшая реализация (v1.0.0)Современная реализация (v1.1.0+)
Физический методПользовательская разница ($\Delta p = p_t - p_{t-1}$)Нативный API Entity.getKnownSpeed()
Проблема скорости покояПоказывал $1.57\text{ м/с}$ из-за сбросов гравитацииЧетко показывает $0.00\text{ b/s}$ при остановке
Определение землиСпециальные проверки коллизий блоковУправление нативным вектором скорости Minecraft
ТочностьСклонность к ошибкам округления100% совпадение с ванильной физикой

🛠 Анализ проблемы и решение

Устаревший артефакт покоя

В ранних версиях (v1.0.0) вычисление скорости путем вычитания координат между кадрами вызывало ошибку: стоя на земле, Minecraft постоянно сбрасывает скорость падения ($v_y \approx -0.0784$). Это фиксировалось как движение ($1.57\text{ м/с}$).

Решение: интеграция с нативным getKnownSpeed()

Начиная с v1.1.0, Speedometer отказался от вычисления разницы координат в пользу нативного API Minecraft Entity.getKnownSpeed():

java
Vec3 knownSpeed = entity.getKnownSpeed();

Неподвижные игроки четко выдают $(0.00, 0.00, 0.00)$, обеспечивая чистое значение $0.00\text{ b/s}$.


🔗 Связанные страницы

Official documentation & web portal for Dasik Igaijinn mods.