Pause stoppt die Animationen nicht: Kreide-Wackeln, Schal und Partikel-Zeit laufen weiter #7
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#7
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?
Pause stoppt die Animationen nicht: Kreide-Wackeln, Schal und Partikel-Zeit laufen weiter #7"
By gilli — Closed
accessibility
bug
medium
pause
spec-gap
1 comments
Fixed in
9a1fd56(main).Geändert
update(dt): der Frühausstieg fürPAUSED/GAME_OVERsitzt jetzt über derAnimationsuhr.
S.visualTime += dt/S.tickundINPUT.tickTimers(dt)laufen nur noch inaktiven Zuständen –
render()malt in der Pause damit dasselbe Bild (Linien-Wackeln, Schal,Fragment-Rotation, Parallax, Fokus-Effekt stehen). beim Fortsetzen läuft die Uhr nahtlos weiter,
es sammelt sich kein Restakku an.
(
role="status"/aria-live), kein Bildanteil – ihr Timer durfte nicht mit einfrieren, sonsthinge sie dauerhaft hinter dem Dialog.
AUDIO.freeze(bool)(neu) friert den Audio-Context ein;setStateruft es mitnext === "PAUSED". Ein langer Klang (Fokus 0,7 s, Sturz 0,85 s, Rekord-Fanfare) verklingtnicht ins Pausenmenü, sondern wartet bis „Fortsetzen“. Im eingefrorenen Zustand werden keine
neuen Klänge geplant (
tone/noise), auch nicht über die Gestik-Aufrufe vonAUDIO.resume().Freigegeben wird in jedem anderen Zustand, damit die Menü-Töne nach „Zum Menü“ nicht stumm sind.
setStatestellt beim Wechsel in die PausecamShake/flashauf 0: beide werden inupdateheruntergezählt und wirken in
render()mitMath.random()bzw. als Tönung – eingefroren wäredas Standbild wackelnd oder getönt geblieben.
Physik, Partikel und Simulationsschritte standen bereits vorher still – unverändert.
Messung
Vor dem Fix (PAUSED, 500 ms Realzeit):
visualTime+0,525,tick+5, zwei Screenshotsuneins. Nach dem Fix: 0,0 / 0 / pixelidentisch. Aktive Zustände unverändert: Menü-Demo
+0,41 und Lauf +0,41
visualTimepro 400 ms.Test
tests/browser_issue7.py(neu, intests/run-all.sh), im echtenrequestAnimationFrame-Loop –nichts stillgelegt, sonst könnte die Animationsuhr gar nicht weiterlaufen:
Escape:visualTime/tick,runTime, Körper und Partikel unverändertsuspend-Aufruf bei Pause gezählt, im Pausenmenü wird kein einziger Oszillator mehrerzeugt, bei Fortsetzen
resume(geprüft über Aufrufzähler, nicht über Backend-Zustände –Autoplay-Sperre sonst nicht aussagekräftig)
settings.reduced(prefers-reduced-motion) und nach einem Sturz imGame-Over-Bildschirm; nach Fortsetzen und nach „Nochmal spielen“ läuft die Uhr wieder
git show HEAD:index.htmlviaPULSE_HTML: 6 Prüfungen rot, nach dem Fix grün(dreimal wiederholt).
./tests/run-all.sh 1komplett grün.