fix(player): saltar enmig d'un gir de 180° comprometeix la direcció final

This commit is contained in:
JailDesigner committed 2026-04-25 15:17:45 +02:00
1 parent 7f78f556f3
commit 4667e0abf9
2 files changed
+15 -1

No files matched your search

+1 -1
View File
@@ -111,7 +111,7 @@ turn:
jump:
impulse: 200
gravity: 600
landing_stun_ms: 200
landing_stun_ms: 300
shadow_y_offset: 3
sound: jump.wav
land_sound: land.wav
+14
View File
@@ -559,6 +559,20 @@ void Player::startJump() {
// empentant en mig d'un frame on intentàvem saltar, el flanc es perd
// — comportament acceptable: l'empenta guanya al toc curt.
if (state_ != State::GROUNDED) { return; }
// Un gir de 180° en curs es compromet immediatament: si l'usuari
// ha disparat un giro (oest→est, p.ex.) i salta abans que s'esgote
// el timer, l'animació del salt ha de mostrar la direcció final
// (jump lateral), no la intermèdia (jump_down). Aplem el pending
// ara mateix i resetem l'estat del gir. Si no hi havia gir en
// curs, és no-op.
if (turning_remaining_ms_ > 0.0F) {
applyCardinal(pending_cardinal_);
turning_remaining_ms_ = 0.0F;
pending_cardinal_ = Cardinal::NONE;
intermediate_cardinal_ = Cardinal::NONE;
}
state_ = State::AIRBORNE;
jump_z_ = 0.0F;
jump_vz_ = jump_config.impulse_px_per_s;