DUP-05: clampToPlayfield() extret de Player::update
Els 4 `const auto` MIN_/MAX_ i els dos `std::clamp` es mouen a un mètode privat `clampToPlayfield`. Separa la responsabilitat de mantenir la caixa dins del playfield de la integració de moviment.
This commit is contained in:
1 parent
cb2364490f
commit
df059a6fcb
3 files changed
+9
-1
No files matched your search
@@ -105,6 +105,10 @@ void Player::update(float delta_time) {
|
||||
setPosY(NEW_Y);
|
||||
if (Map::collides(baseBox())) { setPosY(OLD_Y); }
|
||||
|
||||
clampToPlayfield();
|
||||
}
|
||||
|
||||
void Player::clampToPlayfield() {
|
||||
// Límits de la zona jugable: la caixa de col·lisió no pot eixir del
|
||||
// playfield (muros). El cap del sprite sí pot sobresortir per damunt.
|
||||
const auto MIN_X = static_cast<float>(Map::playfield_x - collision_x_offset);
|
||||
|
||||
@@ -52,6 +52,10 @@ class Player : public AnimatedSprite {
|
||||
// a referència per al Z-order.
|
||||
[[nodiscard]] auto baseBox() const -> SDL_FRect;
|
||||
|
||||
// Clamp de la caixa de col·lisió al playfield (no al sprite sencer:
|
||||
// el cap pot sobresortir pel mur superior sense afectar el joc).
|
||||
void clampToPlayfield();
|
||||
|
||||
// Snap cap al passadís perpendicular a la direcció premuda. Si la caixa
|
||||
// de col·lisió està a ≤ collision_size/2 d'una lane, s'hi aproxima
|
||||
// gradualment (a velocitat de moviment). Permet canviar de direcció
|
||||
|
||||
Reference in new issue
Block a user