fix(player): no snap a lane si pica contra mur extern; corridor només si porta oberta
This commit is contained in:
1 parent
1ae6912be5
commit
82ccf65ce1
3 files changed
+82
-35
No files matched your search
@@ -436,14 +436,24 @@ class Player : public AnimatedSprite {
|
||||
// attack/recover), el sufix del cardinal (`_north`/`_south`/`_east`/
|
||||
// `_west`).
|
||||
[[nodiscard]] auto animationName(bool moving) const -> std::string;
|
||||
void snapToLane(
|
||||
// Aplica el snap cap a una lane concreta amb la mecànica de fases
|
||||
// 1/2 + push de blockers. Els wrappers (`snapToHorizontalLane` /
|
||||
// `snapToVerticalLane`) decideixen la lane diana (grid regular, o
|
||||
// corridor de la porta com a candidata especial).
|
||||
void snapTowardsLane(
|
||||
float delta_time,
|
||||
float base,
|
||||
float pitch,
|
||||
int max_idx,
|
||||
float target_lane,
|
||||
float (Player::*get_pos)() const,
|
||||
void (Player::*set_pos)(float));
|
||||
|
||||
// Cert si un step (dx, dy) trauria la base box fora del playfield
|
||||
// (mur extern). Excepció: si el moviment és cap amunt (dy<0), la
|
||||
// porta està OBERTA i la box probe queda dins del rang X del
|
||||
// corridor, no és bloqueig — el jugador hi pot sortir. S'usa per
|
||||
// suprimir el snap a lane quan el jugador no pot avançar perquè
|
||||
// pica contra un mur exterior.
|
||||
[[nodiscard]] auto wouldHitOuterWall(float dx, float dy) const -> bool;
|
||||
|
||||
// Quan el snap lateral trobaria un altre jugador al carril objectiu,
|
||||
// l'empentem el mateix step en el mateix eix. Així `this` pot entrar
|
||||
// al passadís encara que l'altre estiga estacionat al mitj — mateix
|
||||
|
||||
Reference in new issue
Block a user