docs: actualitza estat post-refactor/options-class
- audit-game.md cabecera: contadors actualitzats (32 DONE, 1 DONE parcial, 5 WONTFIX, 0 DEFERRED) i frase dels DEFERRED en pretèrit perfecte. INCONS-01 queda com l'únic DONE (parcial), intencionalment. - player-animations.md secció 4: el patró antic "AnimatedSprite::update integra + col·lisió eix-separada reverteix cada eix" es substitueix per "animate(dt) + tryMove(vx*dt, vy*dt, collidesFn) amb collisionBox() virtual" — coincidint amb el codi post-PATCH-01. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
a7e681a347
commit
510ab55a33
2 files changed
+11
-6
No files matched your search
+1
-1
@@ -3,7 +3,7 @@
|
||||
Rama: `audit/game`.
|
||||
Cobertura: `source/game/{entities,map,scenes,ui}` + `source/game/options.{hpp,cpp}` (12 fitxers, ~1.486 línies).
|
||||
|
||||
Estado global: **28 DONE, 2 DONE (parcial), 5 WONTFIX, 4 DEFERRED** sobre 39 ítems (el top 5 compta dins dels seus IDs individuals). Cada canvi té un commit aïllat i s'ha provat amb `SDL_VIDEODRIVER=dummy` + `SIGINT` (el log de `Game start` a `Bye!` és idèntic entre commits; la branca `config.yaml` de backup verificada manualment amb un fitxer corrupte). Els 4 DEFERRED (COUP-02, COUP-03, CONV-02 resta, PATCH-01) es tanquen a la branca `refactor/options-class` (registre de commits al final del fitxer).
|
||||
Estado global: **32 DONE, 1 DONE (parcial), 5 WONTFIX, 0 DEFERRED** sobre 39 ítems (el top 5 compta dins dels seus IDs individuals). Cada canvi té un commit aïllat i s'ha provat amb `SDL_VIDEODRIVER=dummy` + `SIGINT` (el log de `Game start` a `Bye!` és idèntic entre commits; la branca `config.yaml` de backup verificada manualment amb un fitxer corrupte). Els 4 DEFERRED inicials (COUP-02, COUP-03, CONV-02 part Options, PATCH-01) s'han tancat a la branca `refactor/options-class` (registre de commits al final del fitxer); l'únic ítem que queda en DONE (parcial) és INCONS-01, intencionadament — la nota n'explica el motiu.
|
||||
|
||||
Estados posibles:
|
||||
- `PENDING` — identificat, sense tocar
|
||||
|
||||
@@ -52,12 +52,17 @@ impedeix avançar, l'animació `walk*` s'atura i es força la variant
|
||||
|
||||
1. Al principi del frame es captura `FRAME_START_X` / `FRAME_START_Y`.
|
||||
2. S'aplica snap al passadís perpendicular si hi ha pur moviment H o V.
|
||||
3. `AnimatedSprite::update` integra la velocitat; la col·lisió
|
||||
eix-separada reverteix cada eix si `Map::collides(baseBox())`.
|
||||
4. Després de `clampToPlayfield`, es compara la posició final amb el
|
||||
3. `animate(delta_time)` avança el frame de l'animació actual sense
|
||||
tocar la posició.
|
||||
4. `tryMove(vx*dt, vy*dt, collidesFn)` (a `MovingSprite`) aplica el
|
||||
moviment per eix: si la `collisionBox()` resultant col·lisiona —
|
||||
el Player la sobreescriu retornant `getBaseBox()` —, l'eix es
|
||||
reverteix. Així el jugador llisca contra murs/sarcòfags en lloc de
|
||||
bloquejar-se en sec.
|
||||
5. Després de `clampToPlayfield`, es compara la posició final amb el
|
||||
valor capturat al pas 1. Si és idèntica, `MOVED = false` i es tria
|
||||
`stand` / `stand_up` / `stand_down` segons `facing_`.
|
||||
5. Si hi ha hagut moviment real (incloent-hi snap), s'aplica la variant
|
||||
`stand` / `stand_up` / `stand_down` segons `facing_`. Si hi ha
|
||||
hagut moviment real (incloent-hi snap), s'aplica la variant
|
||||
`walk*` del mateix facing.
|
||||
|
||||
D'aquesta manera, xocar contra un mur o un sarcòfag fa que el jugador es
|
||||
|
||||
Reference in new issue
Block a user