11.07.2026 19:00

Silnik gier: kafelkowe poziomy

⏱️ 2 min read
Share:

Silnik gier 2D Moonlight Studio dostał warstwę kafli — sposób na budowanie poziomów platformówek, map top-down i teł z jednego obrazka podzielonego na komórki.

Jak to działa

Warstwa kafli składa się z atlasu (jeden obraz z kafelkami ułożonymi w siatkę) i mapy — dwuwymiarowej tablicy, która dla każdej komórki trzyma numer kafla albo znacznik „pusto". Numer wybiera pole atlasu, więc cały poziom to po prostu lista liczb: taniej w pamięci i łatwo edytować.

Duże mapy bez spadku płynności

Warstwa rysuje tylko kafle widoczne w kadrze. Mapa 1000×1000 pól kosztuje dokładnie tyle, ile aktualnie mieści się na ekranie — nie tyle, ile ma pól. Można więc budować rozległe światy i przewijać po nich kamerą bez martwienia się o wydajność.

Sterowanie ze skryptu

Trzy funkcje wystarczą, by gra pracowała na mapie:

local kafel = mp.tile_at(mapa, kx, ky)          -- odczyt (−1 = pusto)
mp.set_tile(mapa, kx, ky, 4)                     -- zmiana kafla w locie
local c = mp.world_to_cell(mapa, gracz_x, gracz_y)  -- świat → komórka

world_to_cell uwzględnia pozycję warstwy, więc na tych trzech funkcjach gra buduje własną logikę „czy pod bohaterem jest podłoże" — niszczalne ściany, sekretne przejścia, zbieranie kafli.

Co dalej

Nadchodzą: wbudowana kolizja fizyczna kafli (żeby postać stawała na podłożu bez pisania własnej logiki), obracanie i odbijanie pojedynczych kafli, auto-kafelkowanie krawędzi oraz edytor poziomów w edytorze projektów gry.

📚 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.