04.08.2026 18:18

Kadry, które da się poprawić

⏱️ 3 min read
Share:

Do tej pory kadr komiksowy w edytorze scen był decyzją ostateczną. Można go było narysować, przeciąć linią i przesunąć w całości — ale nie dało się złapać jego krawędzi i przesunąć jej o te dwadzieścia pikseli, których brakuje. A tak właśnie wygląda prawdziwa praca nad stroną: układ powstaje w połowie, potem dochodzi dymek, potem rysunek okazuje się ciaśniejszy, niż miał być, i cała siatka wymaga korekty.

Od dziś kadr ma uchwyty. Chwytasz bok, przeciągasz — a sąsiad zza rynny jedzie razem z nim, więc odstęp między kadrami zostaje taki, jaki był. Chwytasz narożnik, przesuwasz sam wierzchołek. Wpisujesz szerokość rynny i para kadrów rozsuwa się symetrycznie.

Sprzężenie, czyli po co to wszystko

Gdyby bok ruszał się sam, każda korekta układu oznaczałaby poprawianie po kolei czterech kadrów i pilnowanie na oko, żeby rynny się zgadzały. Dlatego przeciągnięcie boku pociąga za sobą całą domkniętą grupę: kadr po drugiej stronie rynny, a przy siatce także dalsze kolumny i wiersze leżące na tej samej linii. Możesz to ograniczyć do sąsiadów w rzędzie, rozszerzyć na wszystkich albo wyłączyć zupełnie — i osobno ustawić zasięg poziomy i pionowy, bo strona komiksu rutynowo łączy wąską rynnę pionową z szerszą poziomą.

Podział na siatkę

Zamiast ciąć kadr linią kilka razy, można podać liczbę kolumn i wierszy. Siatka układa się na prostokącie opisanym na kadrze, ale każda komórka jest przycinana do jego rzeczywistego kształtu — kadr ukośny nie dostanie drzazg wystających poza obrys, a puste narożniki po prostu nie stają się kadrami. Rysunki przypięte do dzielonego kadru trafiają do komórki, w której leży ich środek.

Jest też przełącznik przyciemniający wszystko poza kadrami — przydaje się, gdy układa się kompozycję i chce zobaczyć samą siatkę bez rozpraszającej grafiki wokół.

O tym, co poszło nie tak

Ta funkcja przeszła dwa audyty i oba znalazły coś istotnego.

Pierwszy audyt — planu, jeszcze przed napisaniem linijki kodu — obalił dziewięć założeń, które wpisałem tam jako fakty. Trzy z nich wywróciłyby implementację: mechanizm podziału na siatkę działa zupełnie inaczej, niż zapamiętałem; przyciemnienie liczone „na skróty" gasiłoby część wspólną dwóch zachodzących na siebie kadrów, co wygląda jak dziura w stronie; a próba wciśnięcia edycji w istniejące narzędzie rysowania kolidowałaby z nim tak, że jeden gest znaczyłby dwie rzeczy naraz.

Drugi audyt — kodu, po wdrożeniu — potwierdził, że rdzeń geometryczny jest bezbłędny (sprawdzony niezależnym przeliczeniem na kilkudziesięciu losowych układach), i znalazł trzy poważne usterki w warstwie, której testy nie dotykały. Najciekawsza: zabezpieczenie przed wywróceniem kadru na drugą stronę nie działało wcale — porównywało wartości, które z definicji zawsze były dodatnie. Wyglądało na napisane, przeszło przegląd, a nie zrobiło nic. Znalezione, naprawione i pokryte testem, który by to złapał.

Piszę o tym, bo łatwo pokazywać tylko gotowy efekt. Ta funkcja jest dziś solidna nie dlatego, że powstała bezbłędnie, tylko dlatego, że dwa razy ktoś jej rzetelnie poszukał dziury — zanim zrobił to użytkownik na własnej stronie komiksu.

📚 Related posts

27.08.2026 20:55

Data, której nie cofniemy nawet my

Każdy certyfikat autorstwa dostaje datę zapisaną w blockchainie Bitcoina — takiej nie podważy nikt, my też nie. Sprawdzisz ją bez konta i bez Moonligh...
Continue reading →
27.08.2026 19:35

Twój kolor, wszędzie

Trzy tryby i siedem akcentów, wspólnych dla strony i Moonlight Animate. Motyw jedzie z kontem, profil pokazuje gościom Twoje kolory, a harmonogram sam...
Continue reading →
27.08.2026 18:31

Kto moderuje i na jakiej podstawie

Moderator to teraz osobna rola z własnym zakresem, a nie administrator w przebraniu. Odrzucenie treści wymaga powodu, który trafia do autora razem z d...
Continue reading →

📧 Stay up to date!

Join the waitlist to get notified about new Dev Blog posts and Moonlight platform launch.