Vector Art: Verläufe und Texturfüllung #186

Closed
opened 2026-09-20 19:46:47 +02:00 by meleki · 2 comments
Owner

Folge-Issue aus #129 (Frage 5, Antwort: „erstmal nur solide Füllung, Verlauf ist Folge-Issue").

Befund

Eine Vector-Art-Form trägt seit #129 eine einfarbige Füllung mit Deckkraft und optional eine Kontur (Farbe, Breite). Für Hintergründe, Himmel, Wasser und Metall ist ein Verlauf das naheliegende Mittel.

Zu bauen (Vorschlag)

  • Füllart je Form: einfarbig (wie heute), linearer Verlauf, radialer Verlauf.
  • Ein Verlauf hat Farbstopps (Position 0..1, Farbe, Deckkraft), eine Achse bzw. einen Mittelpunkt + Radius, im Tab mit Griffen zu ziehen.
  • Auch für die Kontur, wenn es ohne Mehraufwand fällt.
  • Texturfüllung (ein Bild als Füllung, mit Kachelung) gehört in dieselbe Familie — entweder hier mit, oder als eigenes Issue abgetrennt.

Offen

  • Farbstopps im Inspector als Leiste bearbeiten oder nur als Liste?
Folge-Issue aus #129 (Frage 5, Antwort: „erstmal nur solide Füllung, Verlauf ist Folge-Issue"). ## Befund Eine Vector-Art-Form trägt seit #129 eine **einfarbige** Füllung mit Deckkraft und optional eine Kontur (Farbe, Breite). Für Hintergründe, Himmel, Wasser und Metall ist ein Verlauf das naheliegende Mittel. ## Zu bauen (Vorschlag) - Füllart je Form: **einfarbig** (wie heute), **linearer Verlauf**, **radialer Verlauf**. - Ein Verlauf hat Farbstopps (Position 0..1, Farbe, Deckkraft), eine Achse bzw. einen Mittelpunkt + Radius, im Tab mit Griffen zu ziehen. - Auch für die **Kontur**, wenn es ohne Mehraufwand fällt. - **Texturfüllung** (ein Bild als Füllung, mit Kachelung) gehört in dieselbe Familie — entweder hier mit, oder als eigenes Issue abgetrennt. ## Offen - Farbstopps im Inspector als Leiste bearbeiten oder nur als Liste?
meleki added the new label 2026-09-20 19:46:47 +02:00
admin added this to the Development project 2026-09-20 19:48:04 +02:00
admin removed the new label 2026-09-21 06:15:09 +02:00

Als Leiste bearbeiten wäre ideal

Als Leiste bearbeiten wäre ideal
admin moved this to Next in Development on 2026-09-21 08:08:12 +02:00
admin moved this to Done in Development on 2026-09-21 13:04:35 +02:00
Author
Owner

Umgesetzt in 592ea94 (Wiki: a726d4a), wie besprochen alles in einem Issue: Verläufe für Füllung und Kontur plus Texturfüllung.

Was dazukommt

Art Füllung Kontur
Solid colour ✓ ✓
Linear gradient ✓ ✓
Radial gradient ✓ ✓
Texture ✓ –
  • Fill type und Line type im Inspector unter VECTOR SHAPE.
  • Farbstopps als Leiste, wie gewünscht: Klick auf eine Markierung wählt, Ziehen verschiebt, Klick auf die Leiste setzt einen neuen Stopp in der Farbe, die der Verlauf dort schon hat. Darunter Stop colour / opacity / position und Remove stop. Mindestens zwei Stopps bleiben.
  • Werkzeug Paint im Tab: zwei Griffe für Achse (linear), Mittelpunkt und Radius (radial) oder die Ecken einer Kachel (Textur). Handles: Fill / Outline wählt, welche Füllung bearbeitet wird.
  • Verschieben einer ganzen Form nimmt Verlauf und Kachel mit. Jede Geste ist ein Undo-Schritt.

Eigene Entscheidungen

  • Texturfüllung kachelt immer. Pixi macht aus einem nicht kachelnden Muster stillschweigend ein kachelndes. Beim Einschalten deckt eine Kachel die ganze Form ab.
  • Nur hochgeladene Texturen und Frames, keine Zeichnungen (eine Zeichnung würde sich sonst selbst rastern).
  • Keine Textur für die Kontur, nur Verläufe.
  • Radiale Verläufe sind nur Kreise, keine Ellipsen (steht unter Known limits im Wiki).

Funde unterwegs

  • graphics.destroy(true) hat die Texturen der Füllungen mitzerstört. Mit Texturfüllung brach der nächste Redraw mit reading 'scaleMode' von null ab. Jetzt destroy() ohne Optionen.
  • Der Verlaufs-Cache hat alte Verläufe selbst zerstört, das gab 20 Pixi-Warnungen „destroyed while still bound“. Sie gehen jetzt an Pixis Textur-GC (autoGarbageCollect eingeschaltet). Die Konsole von Modul 47 ist wieder leer.

Tests

./check.sh              → 135 Files, 2011 Tests, exit 0   (vorher 134 / 1986)
npm run build           → exit 0
GM_STEPS=47 (frisch)    → ALL PASSED – 54 checks   (vorher 44), 0 Konsolenwarnungen
  • 25 neue Unit-Tests, 10 neue e2e-Checks (Block 47i).
  • Vier Gegenproben greifen, Originale per cmp zurückgeprüft.
  • Check-Summe 1232 in README und Wiki, gerechnet (1222 + 10). Der CI-Lauf steht noch aus.

Doku: Wiki Vector Art, Abschnitt Gradients and textures.

Umgesetzt in 592ea94 (Wiki: a726d4a), wie besprochen alles in einem Issue: Verläufe für Füllung und Kontur plus Texturfüllung. ## Was dazukommt | Art | Füllung | Kontur | |---|---|---| | Solid colour | ✓ | ✓ | | Linear gradient | ✓ | ✓ | | Radial gradient | ✓ | ✓ | | Texture | ✓ | – | - **Fill type** und **Line type** im Inspector unter VECTOR SHAPE. - **Farbstopps als Leiste**, wie gewünscht: Klick auf eine Markierung wählt, Ziehen verschiebt, Klick auf die Leiste setzt einen neuen Stopp in der Farbe, die der Verlauf dort schon hat. Darunter Stop colour / opacity / position und Remove stop. Mindestens zwei Stopps bleiben. - **Werkzeug Paint** im Tab: zwei Griffe für Achse (linear), Mittelpunkt und Radius (radial) oder die Ecken einer Kachel (Textur). **Handles: Fill / Outline** wählt, welche Füllung bearbeitet wird. - Verschieben einer ganzen Form nimmt Verlauf und Kachel mit. Jede Geste ist ein Undo-Schritt. ## Eigene Entscheidungen - **Texturfüllung kachelt immer.** Pixi macht aus einem nicht kachelnden Muster stillschweigend ein kachelndes. Beim Einschalten deckt eine Kachel die ganze Form ab. - **Nur hochgeladene Texturen und Frames**, keine Zeichnungen (eine Zeichnung würde sich sonst selbst rastern). - **Keine Textur für die Kontur**, nur Verläufe. - Radiale Verläufe sind nur Kreise, keine Ellipsen (steht unter *Known limits* im Wiki). ## Funde unterwegs - `graphics.destroy(true)` hat die Texturen der Füllungen mitzerstört. Mit Texturfüllung brach der nächste Redraw mit `reading 'scaleMode'` von `null` ab. Jetzt `destroy()` ohne Optionen. - Der Verlaufs-Cache hat alte Verläufe selbst zerstört, das gab 20 Pixi-Warnungen „destroyed while still bound“. Sie gehen jetzt an Pixis Textur-GC (`autoGarbageCollect` eingeschaltet). Die Konsole von Modul 47 ist wieder leer. ## Tests ``` ./check.sh → 135 Files, 2011 Tests, exit 0 (vorher 134 / 1986) npm run build → exit 0 GM_STEPS=47 (frisch) → ALL PASSED – 54 checks (vorher 44), 0 Konsolenwarnungen ``` - 25 neue Unit-Tests, 10 neue e2e-Checks (Block 47i). - Vier Gegenproben greifen, Originale per `cmp` zurückgeprüft. - Check-Summe 1232 in README und Wiki, gerechnet (1222 + 10). Der CI-Lauf steht noch aus. Doku: Wiki [Vector Art](https://git.nockal.com/meleki/game-maker/wiki/Vector-Art), Abschnitt *Gradients and textures*.
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: meleki/feuerwerk#186