Correction de vitesse à l'arrêt
Cette page documente la résolution des valeurs fantômes (1.57 m/s) lors de l'arrêt sur un bloc.
📊 Infobox du correctif de repos au sol
| Aspect | Implémentation héritée (v1.0.0) | Implémentation moderne (v1.1.0+) |
|---|---|---|
| Méthode physique | Delta de position personnalisé ($\Delta p = p_t - p_{t-1}$) | API native Entity.getKnownSpeed() |
| Problème de repos | Affichait $1.57\text{ m/s}$ en raison de la gravité | Affiche proprement $0.00\text{ b/s}$ à l'arrêt |
| Détection du sol | Vérifications ad-hoc des collisions de blocs | Gestion native des vecteurs de vitesse de Minecraft |
| Précision | Sujet aux erreurs d'arrondi | 100% de précision calquée sur la physique vanilla |
🛠 Analyse du problème et solution
L'artefact de repos hérité
Dans les premières versions (v1.0.0), soustraire les coordonnées entre les images provoquait un bogue : au sol, Minecraft réinitialise continuellement la vitesse vers le bas ($v_y \approx -0.0784$), faussement comptabilisée comme mouvement ($1.57\text{ m/s}$).
La solution : intégration native de getKnownSpeed()
À partir de la v1.1.0, Speedometer a supprimé les calculs de delta de position personnalisés au profit de l'API native Entity.getKnownSpeed() :
java
Vec3 knownSpeed = entity.getKnownSpeed();Les joueurs immobiles rapportent proprement $(0.00, 0.00, 0.00)$, affichant $0.00\text{ b/s}$.
