fix(player): el jugador empentat es queda en stand, no walk
This commit is contained in:
1 parent
e22f3240da
commit
511f8d5b09
3 files changed
+25
-1
No files matched your search
@@ -87,6 +87,14 @@ class Player : public AnimatedSprite {
|
||||
// contra mur) s'emparen automàticament.
|
||||
void setOtherPlayers(const std::vector<Player*>* all) { all_players_ = all; }
|
||||
|
||||
// Marcat pel resolver jugador↔jugador quan aquest frame el jugador
|
||||
// és arrossegat per una empenta (no té input propi; es desplaça
|
||||
// perquè l'altre l'empeny). Determina que l'animació del frame siga
|
||||
// `stand_*` encara que la posició canvie. El flag es reseteja a
|
||||
// l'inici de cada `tick`, així que el resolver l'ha de tornar a
|
||||
// posar cada frame que el push s'haja de mantenir.
|
||||
void setBeingPushed(bool pushed) { being_pushed_ = pushed; }
|
||||
|
||||
// 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 sota → davant.
|
||||
@@ -162,6 +170,11 @@ class Player : public AnimatedSprite {
|
||||
// Punter a la llista de tots els jugadors del nivell (propietat del
|
||||
// GameScene). `nullptr` = jugador aïllat, sense col·lisió inter-P.
|
||||
const std::vector<Player*>* all_players_{nullptr};
|
||||
|
||||
// Frame actual el jugador està sent empentat (no té input propi).
|
||||
// Serveix només per a l'elecció d'animació — la posició ja la
|
||||
// gestiona `intended_vx_/vy_` escalats pel resolver.
|
||||
bool being_pushed_{false};
|
||||
// Còpia plana de la geometria del mapa + punters a `collides`/
|
||||
// `inside_playfield`. POD trivial; copiada al ctor i no muta durant
|
||||
// la vida del Player. Vol dir que aquest Player només és vàlid per
|
||||
|
||||
Reference in new issue
Block a user