Silnik gier: liny, lasery i trajektorie (Line2D)
Silnik gier 2D Moonlight Studio umiał dotąd rysować kwadraty z teksturą — sprite'y, kafle, interfejs. Nie umiał narysować linii. A linia to w grach codzienność: lina do haka, snop lasera, trajektoria pocisku przed strzałem, kontur strefy zagrożenia.
Nowy węzeł: Line2D
Polilinia o zadanej grubości: podajesz punkty, grubość w pikselach i opcjonalnie domknięcie (kontur). Każdy segment silnik renderuje jako obrócony czworokąt — tą samą maszynerią co cząsteczki, więc linie kosztują tyle co sprite'y i sortują się z resztą sceny.
-- celownik łuku: parabola przeliczana co klatkę
mp.set_line_points(celownik, {x0,y0, x1,y1, x2,y2, x3,y3})
mp.set_line_width(celownik, 3)
Kolor bez nowego pokrętła
Linia nie ma osobnego pola koloru — jej barwą jest barwa własna węzła (mp.set_self_modulate), ta sama oś, która barwi pojedyncze sprite'y. Czerwony laser to jedna linijka. Bonus wynika z architektury: barwa dziedziczona sceny (np. przyciemnienie nocą) obejmuje linie dokładnie tak jak wszystko inne — zero specjalnych przypadków.
Odporne na złe dane
Punkty aktualizowane ze skryptu przechodzą kontrolę w całości albo wcale — jedna zepsuta wartość nie zostawia liny „w pół drogi". Sceny z dysku filtrują nieskończoności, powtórzone punkty znikają bez śladu, a domknięcie konturu z dwóch punktów nie rysuje tego samego odcinka dwa razy.
Co dalej
Styki segmentów są w tej wersji proste — na bardzo ostrych kątach przy dużej grubości widać szczeliny. W kolejce: łączenia ścięte i zaokrąglone oraz smugi (trail) budowane na Line2D.