Speziell beim Ping-Pong fällt es auf: das letzte Frame dauert doppelt so lang wie alle anderen. ein volles Frame am schluss, und beim umdrehen auch volles Frame am Anfang. sprich, bei 10 frames werden im endeffect 11 frames abgespielt oder so
Speziell beim Ping-Pong fällt es auf: das letzte Frame dauert doppelt so lang wie alle anderen. ein volles Frame am schluss, und beim umdrehen auch volles Frame am Anfang. sprich, bei 10 frames werden im endeffect 11 frames abgespielt oder so
Ursache: Ping-pong drehte nicht auf dem letzten Key um, sondern einen Frame dahinter — beide Enden liefen doppelt (Keys 0…9: 20 statt 18 Frames je Hin und Zurück, überblendete Werte standen am Ende einen Frame still).
Fix:
playheadAt (src/core/model/animation.ts) dreht jetzt auf dem letzten Key um und meldet zusätzlich reverse.
Springende Werte (Texture, Boolean, Text, Choice) halten auf dem Rückweg den Key, an dem der Playhead zuletzt vorbeikam — sonst wäre der letzte Frame gar nicht und der vorletzte doppelt zu sehen.
Laufzeit, Timeline und Vorschau reichen reverse durch und zeigen dasselbe Bild. Loop und beide Once-Modi unverändert.
Tests:
Unit: jeder Frame erscheint im 1/60-s-Takt genau einmal (beide Enden inklusive), x dreht ohne Stillstand um. Gegenprobe: ohne Richtungsregel 1 Test rot, mit altem Umkehrpunkt 3 rot.
CI auf 4c92a94: Task 76 gate → CHECK EXIT 0, Task 77 suite → ALL PASSED – 943 checks, Smokes 24 / 19 / 21.
Wiki: Animations.md beschreibt die Ping-pong-Regel (5113c10).
Erledigt in `cc14988`.
**Ursache:** Ping-pong drehte nicht auf dem letzten Key um, sondern einen Frame dahinter — beide Enden liefen doppelt (Keys 0…9: 20 statt 18 Frames je Hin und Zurück, überblendete Werte standen am Ende einen Frame still).
**Fix:**
- `playheadAt` (`src/core/model/animation.ts`) dreht jetzt auf dem letzten Key um und meldet zusätzlich `reverse`.
- Springende Werte (Texture, Boolean, Text, Choice) halten auf dem Rückweg den Key, an dem der Playhead zuletzt vorbeikam — sonst wäre der letzte Frame gar nicht und der vorletzte doppelt zu sehen.
- Laufzeit, Timeline und Vorschau reichen `reverse` durch und zeigen dasselbe Bild. Loop und beide Once-Modi unverändert.
**Tests:**
- Unit: jeder Frame erscheint im 1/60-s-Takt genau einmal (beide Enden inklusive), `x` dreht ohne Stillstand um. Gegenprobe: ohne Richtungsregel 1 Test rot, mit altem Umkehrpunkt 3 rot.
- Lokal: `npm run check` → 92 Files, 1191 Tests; `smoke-actor` → 21 Checks (Ping-pong über 3 Frames); `GM_STEPS=24,25,26` → 101 Checks.
- CI auf `4c92a94`: Task 76 `gate` → `CHECK EXIT 0`, Task 77 `suite` → `ALL PASSED – 943 checks`, Smokes 24 / 19 / 21.
Wiki: `Animations.md` beschreibt die Ping-pong-Regel (`5113c10`).
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Speziell beim Ping-Pong fällt es auf: das letzte Frame dauert doppelt so lang wie alle anderen. ein volles Frame am schluss, und beim umdrehen auch volles Frame am Anfang. sprich, bei 10 frames werden im endeffect 11 frames abgespielt oder so
Erledigt in
cc14988.Ursache: Ping-pong drehte nicht auf dem letzten Key um, sondern einen Frame dahinter — beide Enden liefen doppelt (Keys 0…9: 20 statt 18 Frames je Hin und Zurück, überblendete Werte standen am Ende einen Frame still).
Fix:
playheadAt(src/core/model/animation.ts) dreht jetzt auf dem letzten Key um und meldet zusätzlichreverse.reversedurch und zeigen dasselbe Bild. Loop und beide Once-Modi unverändert.Tests:
xdreht ohne Stillstand um. Gegenprobe: ohne Richtungsregel 1 Test rot, mit altem Umkehrpunkt 3 rot.npm run check→ 92 Files, 1191 Tests;smoke-actor→ 21 Checks (Ping-pong über 3 Frames);GM_STEPS=24,25,26→ 101 Checks.4c92a94: Task 76gate→CHECK EXIT 0, Task 77suite→ALL PASSED – 943 checks, Smokes 24 / 19 / 21.Wiki:
Animations.mdbeschreibt die Ping-pong-Regel (5113c10).