Aus #141 (Abschlussbericht: „Im Scene-View werden Ufer-Zellen als einzelne Viertel-Stücke umrandet, an den Viertel-Grenzen sieht man kleine Querstriche. Auf die Kollision hat das keinen Einfluss.“).
Befund
Eine Autotile mit Umriss wird an den Vierteln zerschnitten; der Scene-View umrandet jedes Stück einzeln. Wo zwei Stücke aneinanderstoßen, entstehen sichtbare Querstriche im Kollisions-Umriss — es sieht nach Lücken aus, die es nicht gibt.
Zu bauen (Vorschlag)
Beim Zeichnen der Kollisions-Umrisse einer Tilemap nur die Außenkanten der vereinigten Fläche zeichnen: Kanten, die genau deckungsgleich mit einer Kante eines Nachbarstücks liegen, entfallen.
Nur Darstellung, die Kollision bleibt unverändert.
Test: ein See aus 3 × 3 Zellen erzeugt genau einen geschlossenen Umriss.
Aus #141 (Abschlussbericht: „Im Scene-View werden Ufer-Zellen als einzelne Viertel-Stücke umrandet, an den Viertel-Grenzen sieht man kleine Querstriche. Auf die Kollision hat das keinen Einfluss.“).
## Befund
- Eine Autotile mit Umriss wird an den Vierteln zerschnitten; der Scene-View umrandet jedes Stück einzeln. Wo zwei Stücke aneinanderstoßen, entstehen sichtbare Querstriche im Kollisions-Umriss — es sieht nach Lücken aus, die es nicht gibt.
## Zu bauen (Vorschlag)
- Beim Zeichnen der Kollisions-Umrisse einer Tilemap nur die **Außenkanten** der vereinigten Fläche zeichnen: Kanten, die genau deckungsgleich mit einer Kante eines Nachbarstücks liegen, entfallen.
- Nur Darstellung, die Kollision bleibt unverändert.
- Test: ein See aus 3 × 3 Zellen erzeugt genau einen geschlossenen Umriss.
meleki
added the new label 2026-09-19 11:41:53 +02:00
Der Scene-View umrandet die Kollision einer Tilemap nur noch an den Außenkanten. Wo zwei Stücke aneinanderstoßen, läuft die gemeinsame Strecke je einmal hin und einmal zurück; diese Strecken werden nicht gezeichnet. Ein Autotile-See ist damit ein einziger Umriss ohne Querstriche an den Vierteln.
Über das Issue hinaus gilt die Regel auch für zusammengefasste Rechtecke normaler Tiles (ein L hatte bisher einen Strich an der Rechteck-Grenze) und für One-Way-Tiles (dünnere Linie). Die Brücken aus der Zerlegung konkaver Umrisse fallen weg, ein Stück, das auf zwei Layern doppelt liegt, wird einmal umrandet.
Gefüllt wird weiter Stück für Stück, die Kollision selbst ist unverändert.
Das Ergebnis wird pro Tilemap gecacht und nur neu gerechnet, wenn sich ihre Kollisionsdaten ändern. Gemessen im Extremfall 100 × 100 Zellen, jedes Viertel ein eigenes Stück: 140 ms (erster Wurf 274 ms). Ein echter See ist kleiner, weil sein Inneres zu Rechtecken verschmilzt; eigens gemessen ist das nicht.
Tests
npm run check → 109 Files, 1569 Tests (vorher 1560), CHECK EXIT 0
GM_STEPS=39,40,41,42,43 (frisch geseedet) → ALL PASSED – 100 checks
GM_STEPS=42 auf dem finalen Build → ALL PASSED – 14 checks
9 neue Unit-Tests, u. a. der See aus 3 × 3 Zellen (genau ein Umriss, Rechteck 2,25–4,75), der Ring um ein leeres Feld (zwei Umrisse, das Loch ein Kreuz mit 12 Ecken, weil nicht gezeichnete Kerben voll blockieren), 50 zufällige Sterne, konvex und am Raster zerschnitten, die jedes Mal wieder ihren eigenen Umriss ergeben.
Gegenprobe mit 4 eingebauten Fehlern, alle gefangen.
e2e 42d, 1 neuer Check: Keil und Boden sind im Browser ein geschlossener Umriss mit 7 Ecken.
CI zu d4ea04d lief beim Schreiben noch. Die Check-Summe 1074 (1073 + 1) in README und Wiki ist gerechnet, noch nicht von CI bestätigt — Nachtrag folgt.
Umgesetzt in `d4ea04d` (Wiki `cb0c46c`).
**Was sich ändert**
- Der Scene-View umrandet die Kollision einer Tilemap nur noch an den **Außenkanten**. Wo zwei Stücke aneinanderstoßen, läuft die gemeinsame Strecke je einmal hin und einmal zurück; diese Strecken werden nicht gezeichnet. Ein Autotile-See ist damit ein einziger Umriss ohne Querstriche an den Vierteln.
- Über das Issue hinaus gilt die Regel auch für zusammengefasste Rechtecke normaler Tiles (ein L hatte bisher einen Strich an der Rechteck-Grenze) und für One-Way-Tiles (dünnere Linie). Die Brücken aus der Zerlegung konkaver Umrisse fallen weg, ein Stück, das auf zwei Layern doppelt liegt, wird einmal umrandet.
- Gefüllt wird weiter Stück für Stück, **die Kollision selbst ist unverändert**.
- Das Ergebnis wird pro Tilemap gecacht und nur neu gerechnet, wenn sich ihre Kollisionsdaten ändern. Gemessen im Extremfall 100 × 100 Zellen, jedes Viertel ein eigenes Stück: 140 ms (erster Wurf 274 ms). Ein echter See ist kleiner, weil sein Inneres zu Rechtecken verschmilzt; eigens gemessen ist das nicht.
**Tests**
```
npm run check → 109 Files, 1569 Tests (vorher 1560), CHECK EXIT 0
GM_STEPS=39,40,41,42,43 (frisch geseedet) → ALL PASSED – 100 checks
GM_STEPS=42 auf dem finalen Build → ALL PASSED – 14 checks
```
- 9 neue Unit-Tests, u. a. der See aus 3 × 3 Zellen (genau ein Umriss, Rechteck 2,25–4,75), der Ring um ein leeres Feld (zwei Umrisse, das Loch ein Kreuz mit 12 Ecken, weil nicht gezeichnete Kerben voll blockieren), 50 zufällige Sterne, konvex und am Raster zerschnitten, die jedes Mal wieder ihren eigenen Umriss ergeben.
- Gegenprobe mit 4 eingebauten Fehlern, alle gefangen.
- e2e 42d, 1 neuer Check: Keil und Boden sind im Browser ein geschlossener Umriss mit 7 Ecken.
**CI** zu `d4ea04d` lief beim Schreiben noch. Die Check-Summe **1074** (1073 + 1) in README und Wiki ist gerechnet, noch nicht von CI bestätigt — Nachtrag folgt.
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.
Aus #141 (Abschlussbericht: „Im Scene-View werden Ufer-Zellen als einzelne Viertel-Stücke umrandet, an den Viertel-Grenzen sieht man kleine Querstriche. Auf die Kollision hat das keinen Einfluss.“).
Befund
Zu bauen (Vorschlag)
Umgesetzt in
d4ea04d(Wikicb0c46c).Was sich ändert
Tests
CI zu
d4ea04dlief beim Schreiben noch. Die Check-Summe 1074 (1073 + 1) in README und Wiki ist gerechnet, noch nicht von CI bestätigt — Nachtrag folgt.Nachtrag CI zu
d4ea04d(Logs gelesen): Gate Task 146 – 109 Testdateien grün,CHECK EXIT 0; Suite Task 147 –ALL PASSED – 1074 checks, Smokes 24 / 19 / 21. Die Summe 1074 ist damit gemessen.