fix(player): el z-order del saltador respecta la seua posició al sòl

This commit is contained in:
JailDesigner committed 2026-04-25 12:21:27 +02:00
1 parent f0a0515f28
commit 06ff11d563
1 file changed
+12 -10
+12 -10
View File
@@ -148,20 +148,22 @@ class Player : public AnimatedSprite {
// Y de la base del jugador (cara inferior de la caixa de colisió). Usada // Y de la base del jugador (cara inferior de la caixa de colisió). Usada
// per al Z-order contra els sarcs: peus per sobre d'un sarc → darrere; // per al Z-order contra els sarcs: peus per sobre d'un sarc → darrere;
// per sota → davant. Mentre el jugador està en l'aire, el feet visual // per sota → davant. NO restem `jump_z_`: el saltador no canvia de
// puja amb `jump_z_` perquè s'ordene davant dels actors a la mateixa // tile lògica, només s'eleva visualment, i el sorting ha de respectar
// fila lògica. // la posició al món (un sarc al nord segueix darrere encara que el
// sprite del jugador estigui amunt). Veure també `getGroundFeetY`,
// que coincideix amb aquest mètode i s'usa específicament per
// marcar la posició de la sombra a nivell de sòl.
[[nodiscard]] auto getFeetY() const -> float { [[nodiscard]] auto getFeetY() const -> float {
return getPosY() + static_cast<float>(collision_y_offset + collision_size) - jump_z_;
}
// Y de la base del jugador IGNORANT el salt (sempre la base del cos
// al món, no la posició visual). L'usa el render de la sombra perquè
// es pinte sempre al sòl, encara que el jugador estigui enlaire.
[[nodiscard]] auto getGroundFeetY() const -> float {
return getPosY() + static_cast<float>(collision_y_offset + collision_size); return getPosY() + static_cast<float>(collision_y_offset + collision_size);
} }
// Alies semàntic: els peus del jugador al sòl. Coincideix amb
// `getFeetY` i s'usa al callsite del render de la sombra per fer
// explícit que la sombra es pinta al pla del sòl, no a la posició
// visual del sprite.
[[nodiscard]] auto getGroundFeetY() const -> float { return getFeetY(); }
// Estat actual de la màquina d'estats. L'usa el render (animació // Estat actual de la màquina d'estats. L'usa el render (animació
// jump_*), el resolver de col·lisions (filtre per altura) i el // jump_*), el resolver de col·lisions (filtre per altura) i el
// GameScene (per saber si renderitzar la sombra). // GameScene (per saber si renderitzar la sombra).