Corrección de Velocidad en Reposo
Esta página documenta la resolución de lecturas fantasma (1.57 m/s) al permanecer quieto sobre bloques.
📊 Cuadro de corrección de velocidad en reposo
| Aspecto | Implementación heredada (v1.0.0) | Implementación moderna (v1.1.0+) |
|---|---|---|
| Método físico | Delta de posición personalizada ($\Delta p = p_t - p_{t-1}$) | API nativa Entity.getKnownSpeed() |
| Problema de reposo | Mostraba $1.57\text{ m/s}$ por reinicios de gravedad | Muestra $0.00\text{ b/s}$ de forma limpia |
| Detección de suelo | Comprobaciones ad-hoc de colisión de bloques | Gestión nativa del vector de velocidad de Minecraft |
| Precisión | Propenso a errores de redondeo | 100% de precisión alineada con la física vainilla |
🛠 Análisis del problema y solución
El artefacto de reposo heredado
En versiones iniciales (v1.0.0), calcular la velocidad restando coordenadas provocaba un error: al estar sobre tierra firme, Minecraft reinicia continuamente la velocidad descendente ($v_y \approx -0.0784$), registrándose como movimiento ($1.57\text{ m/s}$).
La solución: integración con getKnownSpeed() nativo
A partir de v1.1.0, Speedometer eliminó los cálculos de delta de posición a favor de la API nativa Entity.getKnownSpeed() de Minecraft:
java
Vec3 knownSpeed = entity.getKnownSpeed();Los jugadores quietos reportan limpiamente $(0.00, 0.00, 0.00)$, mostrando $0.00\text{ b/s}$ de forma precisa.
