Neustart setzt die Laufzeit-Marker nicht zurück: ab dem zweiten Lauf fehlt der Tintenschweif, Landestaub und Werusch schweigen #19
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#19
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?
Neustart setzt die Laufzeit-Marker nicht zurück: ab dem zweiten Lauf fehlt der Tintenschweif, Landestaub und Werusch schweigen #19"
By gilli — Open
bug
consistency
game-feel
medium
0 comments
Behoben in
45cff20(„Neustart setzt die Laufzeit-Marker zurück: Staub, Werusch und Schweif leben wieder (#19)“).Was geändert wurde:
resetWorld()setzt jetztS.lastDust,S.whooshT,S.lastTrailXundS.hookHintzurück, direkt nebenS.trail.length = 0.resetWorldist die Stelle, die jeder Weg in einen frischen Lauf passiert (startRun()wieboot()), damit bekommt jede Route dieselbe saubere Ausgangslage – nicht nur die überstartRun(). Die drei Marker vergleichen gegen Werte desselben Laufs (lastDust/whooshTgegenS.runTime,lastTrailXgegenbody.x); ohne Reset blieben die Werte des Vorläufers stehen und der neue Lauf schweigte, bis er sie überholt hatte. Die Demo ist unberührt (simStepDemonutzt die Marker nicht), derboot()-AufrufresetWorld(12345)setzt sie auf die Werte aus demS-Literal stehend zurück.Was der Test abdeckt:
tests/issue19.mjs(31 Prüfungen, gegen die Auslieferung 20 rot) –resetWorld/startRun/simStepper Klammerzähler aus dem Dokument, geschritten mit echtemCORE.stepBody. Statisch: jedesS.last*-Feld und die vier Marker müssen inresetWorld/startRunzugewiesen werden (Whitelist leer) – ein künftiger Marker ohne Reset lässt die Suite rot. Verhalten: zwei Läufe direkt hintereinander (je Tipp-Sprung) und der Befund-Vorlauf mit 40 s / 40 000 px – nach dem Neustart giltlastDust/whooshT≤runTime,lastTrailX≤body.x,hookHintnull; die Landung in Lauf 2 löst Staub +AUDIO.land()aus, der Schweif malt nach 300 px, der Werusch kommt am Seil (echterattachHook, Seil klemmt aufK.ROPE_MAX, keine assistierte Landung).tests/browser_issue19.py(16 Prüfungen, vorher 12 rot) – derselbe Vertrag im echten Spiel mit echter Eingabe überINPUT.press(rAF per init-script tot, Schritt 1/120). Dazu der Pixelnachweis des Befunds: Lauf 1 und Lauf 2 werden an derselben Stelle gerendert (flache Welt mit fester Segment-id, Generator angehalten, Uhren angepinnt) – der Schweif muss in beiden gemalt sein; gegen die Auslieferung differierte das Schweif-Band um 478 Pixel, jetzt 0.Verifikation: beide Suiten waren gegen
main@b8222b9rot und sind nach dem Fix grün;./tests/run-all.shkomplett grün (16 Node-Suiten + Soak + 13 Browser-Suiten). Die dokumentierte Bildraten-Unschärfe vonbrowser_flow.pytrat wechselnd auf alter und neuer Fassung auf (dy 20,9/24,4 gegen 20,6/23,4 px Schranke) und ist nicht von dieser Änderung verursacht. CI-Lauf 8 (Push aufmain): beide Jobs success, Logs enden mit „alle Suiten grün“.