Исправление скорости в состоянии покоя
На этой странице задокументировано решение проблемы ложных показаний скорости (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}$.
