fix(player): saltar enmig d'un gir de 180° comprometeix la direcció final
This commit is contained in:
1 parent
7f78f556f3
commit
4667e0abf9
2 files changed
+15
-1
No files matched your search
@@ -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;
|
||||
|
||||
Reference in new issue
Block a user