Nach dem Tod zählt die Buchhaltung weiter: der gerammte Block wird zum Ausweichmanöver, die Fragmente dahinter kassiert der Leichnam #18
Labels
No labels
accessibility
bug
cleanup
consistency
crash
critical
game-feel
gameplay
high
input
level-generation
low
maintainability
medium
pause
physics
responsive
security
spec-gap
ui
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
gilli/pulse-sprint#18
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Nach dem Tod zählt die Buchhaltung weiter: der gerammte Block wird zum Ausweichmanöver, die Fragmente dahinter kassiert der Leichnam #18"
By gilli — Closed
bug
game-feel
gameplay
medium
1 comments
Abarbeitet in
7cec3e1(Doku:2ee6082),mainist pushed.Was geändert wurde (
index.html,simStep/update)gemeinsam hinter
if (!S.dying), also hinter derselben Bedingung wie der Kollisionstest.Bewusst keine eingefrorene Kopie der Statistik (
S.frozenStats): damit entsteheno.passed/f.got/p.crossedgar nicht erst (Vorschlag 3 aus dem Befund – das gerammteHindernis wird nie nachträglich zum Ausweichmanöver), und
gameOver(),computeScore()unddas HUD lesen unverändert die lebenden Felder.
S.distance,S.speedund der Sektorwechsel laufen nur, solange das Spiel lebt. DerGleitanteil von ~120 px steht damit weder in der Punktzahl, noch im Dialog, noch in
d.farthest, und an einer Sektorgrenze kommt kein nachträglicher Sektorbonus (+100) dazu.speedhält bei Tod beim letzten lebenden Tempo – Physik, Kamera, Partikel und Zeitlupebleiben unangetastet.
ev.landed(S.swingPending && !S.dying) und umS.focusUsed += dt: eine Landung der Leiche ist kein Schwung, die Zeitlupe des Sterbens istkeine eingesetzte Fokuszeit.
Messung vorher → nachher (Block 1000, Fragmente 1080/1120/1160, Grubenkante 1090, Tod bei
988 px, Gleitweg bis 1101 px)
dodges/frags/pitsTests
tests/issue18.mjs(neu, 40 Prüfungen, kein Browser):newStats,computeScore,addFocus,die,gameOverundsimStepper Klammerzähler aus dem Dokument, geschritten mit echtemCORE.stepBodygegen AUDIO-/RENDER-/DOM-/STORE-Zählattrappen. Block + Fragmente, Gruben- undSektorgrenz-Variante, Landung im Leichengleit, „nach dem Game Over schreibt nichts mehr“ – und
der Gegentest, dass lebend Ausweichen, Fragmente, Gruben, Fokusbalken und Strecke weiter zählen.
tests/browser_issue18.py(neu): derselbe Fall im echtenupdate()-Pfad – Dialog-DOM(
#goScore,#goDist,#goDodges,#goFrag,#goClean,#goFocus), HUD ≡ Dialog,localStorage(best/farthest) und ein Klang-Spy aufcreateOscillator/createBufferSource,der über die Gleitstrecke keine einzige neue Knotenerzeugung zählt.
mainvor dem Fix: 21 bzw. 22 Prüfungen rot, jetzt grün../tests/run-all.shkomplettgrün (13 Node-Suiten + Soak über 5 min + 11 Browser-Suiten). Beide neuen Suiten sind in
run-all.sh,tests/README.mdundAGENTS.md(Invarianten: „Die Buchhaltung endet mit demLeben“) nachgetragen.