Es gibt tiles bspw. eben in einem top down die sollen hinter einem (bspw. player sprite) sein das bei y drunter ist, aber davor sein wenn der player überhalb (y) dem sprite ist, dann soll das tile vor dem player gerendert werden.
Es gibt tiles bspw. eben in einem top down die sollen hinter einem (bspw. player sprite) sein das bei y drunter ist, aber davor sein wenn der player überhalb (y) dem sprite ist, dann soll das tile vor dem player gerendert werden.
admin
added this to the Development project 2026-09-24 11:55:35 +02:00
admin
moved this to Next in Development on 2026-09-24 11:55:41 +02:00
admin
changed title from TIlemap, Z-Order einzelner Tiles per Y to Tilemap, Z-Order einzelner Tiles per Y2026-09-24 18:07:26 +02:00
Umgesetzt in 5085438 und 8904841 (gepusht mit af6ac12).
Sort by Y am Layer (5085438)
Neuer Schalter „Sort by Y“ unter der Layer-Liste im Tilemap-Panel, gespeichert als sortByY am Layer, jede Änderung ist ein Undo-Schritt.
Ein solcher Layer liefert einen Draw-Slot pro Zeile. Auf seiner z-Stufe werden die Zeilen und alle Objekte nach ihrer Unterkante sortiert, bei Gleichstand entscheidet wie bisher die Hierarchie. Andere z-Stufen bleiben unverändert.
Ein nicht sortierter Layer und der Map-Knoten bleiben auf derselben z-Stufe hinter allem Sortierten. Der Boden gehört also auf eine eigene, tiefere z-Stufe.
Neue Tile-Property Sort offset (ganze Zeilen, -16 bis 16): Eine Baumkrone mit 1 wird mit dem Stamm darunter sortiert.
Scene View, Game View, Play und Picking laufen über dieselbe Regel in src/viewport/drawOrder.ts.
Sort line an der Frame (8904841)
Pro Frame ein Wert in Bildpixeln ab der Unterkante (Standard 0). Ein Sprite mit dieser Frame steht für die Sortierung um denselben Anteil seiner Box höher, z. B. auf Höhe der Füße statt am Schattenrand.
Im Textur-Tab als gelbe gestrichelte Linie mit Griff links neben der Frame, im Inspector unter Sorting. Undo-fähig.
Pro Frame statt pro Textur, weil eine Textur mehrere Spritesheets enthalten kann. Alle Frames einer Laufanimation sollten denselben Wert haben.
Tests
Unit: 16 neue Tests in tests/viewport/sort-by-y.test.ts, Gate zuletzt 2364 Tests grün.
Gegenproben: ohne Y-Sortierung, ohne Offset, ohne Sort line, ohne Zeile im Picking und ohne Zeilen-Container fällt jeweils genau der passende Test.
Grenzen
Bei gedrehten Maps ist „unten“ die Welt-Y-Achse.
Ein y-sortierter Layer kostet etwa einen Draw-Call pro Zeile und Tile.
Doku im Wiki: Tilemaps (Abschnitt „Sorting by Y“), Tiles (Sort offset), Textures (Sort line).
Umgesetzt in `5085438` und `8904841` (gepusht mit `af6ac12`).
**Sort by Y am Layer** (`5085438`)
- Neuer Schalter „Sort by Y“ unter der Layer-Liste im Tilemap-Panel, gespeichert als `sortByY` am Layer, jede Änderung ist ein Undo-Schritt.
- Ein solcher Layer liefert einen Draw-Slot pro Zeile. Auf seiner z-Stufe werden die Zeilen und alle Objekte nach ihrer Unterkante sortiert, bei Gleichstand entscheidet wie bisher die Hierarchie. Andere z-Stufen bleiben unverändert.
- Ein nicht sortierter Layer und der Map-Knoten bleiben auf derselben z-Stufe hinter allem Sortierten. Der Boden gehört also auf eine eigene, tiefere z-Stufe.
- Neue Tile-Property **Sort offset** (ganze Zeilen, -16 bis 16): Eine Baumkrone mit 1 wird mit dem Stamm darunter sortiert.
- Scene View, Game View, Play und Picking laufen über dieselbe Regel in `src/viewport/drawOrder.ts`.
**Sort line an der Frame** (`8904841`)
- Pro Frame ein Wert in Bildpixeln ab der Unterkante (Standard 0). Ein Sprite mit dieser Frame steht für die Sortierung um denselben Anteil seiner Box höher, z. B. auf Höhe der Füße statt am Schattenrand.
- Im Textur-Tab als gelbe gestrichelte Linie mit Griff links neben der Frame, im Inspector unter *Sorting*. Undo-fähig.
- Pro Frame statt pro Textur, weil eine Textur mehrere Spritesheets enthalten kann. Alle Frames einer Laufanimation sollten denselben Wert haben.
**Tests**
- Unit: 16 neue Tests in `tests/viewport/sort-by-y.test.ts`, Gate zuletzt 2364 Tests grün.
- e2e: 40p-iii (Schalter, Zeilen-Slot, Undo) und 37b-ii (Griff ziehen, Undo, Inspector-Zeile).
- Gegenproben: ohne Y-Sortierung, ohne Offset, ohne Sort line, ohne Zeile im Picking und ohne Zeilen-Container fällt jeweils genau der passende Test.
**Grenzen**
- Bei gedrehten Maps ist „unten“ die Welt-Y-Achse.
- Ein y-sortierter Layer kostet etwa einen Draw-Call pro Zeile und Tile.
Doku im Wiki: *Tilemaps* (Abschnitt „Sorting by Y“), *Tiles* (Sort offset), *Textures* (Sort line).
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.
Es gibt tiles bspw. eben in einem top down die sollen hinter einem (bspw. player sprite) sein das bei y drunter ist, aber davor sein wenn der player überhalb (y) dem sprite ist, dann soll das tile vor dem player gerendert werden.
TIlemap, Z-Order einzelner Tiles per Yto Tilemap, Z-Order einzelner Tiles per YUmgesetzt in
5085438und8904841(gepusht mitaf6ac12).Sort by Y am Layer (
5085438)sortByYam Layer, jede Änderung ist ein Undo-Schritt.src/viewport/drawOrder.ts.Sort line an der Frame (
8904841)Tests
tests/viewport/sort-by-y.test.ts, Gate zuletzt 2364 Tests grün.Grenzen
Doku im Wiki: Tilemaps (Abschnitt „Sorting by Y“), Tiles (Sort offset), Textures (Sort line).