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
@@ -111,7 +111,7 @@ turn:
|
|||||||
jump:
|
jump:
|
||||||
impulse: 200
|
impulse: 200
|
||||||
gravity: 600
|
gravity: 600
|
||||||
landing_stun_ms: 200
|
landing_stun_ms: 300
|
||||||
shadow_y_offset: 3
|
shadow_y_offset: 3
|
||||||
sound: jump.wav
|
sound: jump.wav
|
||||||
land_sound: land.wav
|
land_sound: land.wav
|
||||||
|
|||||||
@@ -559,6 +559,20 @@ void Player::startJump() {
|
|||||||
// empentant en mig d'un frame on intentàvem saltar, el flanc es perd
|
// empentant en mig d'un frame on intentàvem saltar, el flanc es perd
|
||||||
// — comportament acceptable: l'empenta guanya al toc curt.
|
// — comportament acceptable: l'empenta guanya al toc curt.
|
||||||
if (state_ != State::GROUNDED) { return; }
|
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;
|
state_ = State::AIRBORNE;
|
||||||
jump_z_ = 0.0F;
|
jump_z_ = 0.0F;
|
||||||
jump_vz_ = jump_config.impulse_px_per_s;
|
jump_vz_ = jump_config.impulse_px_per_s;
|
||||||
|
|||||||
Reference in new issue
Block a user