11.07.2026 19:00

Silnik gier: kafelkowe poziomy

⏱️ 2 min czytania
Udostępnij:

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.

📚 Powiązane posty

14.07.2026 22:19

Silnik gier: od szablonu do grywalnej gry RPG top-down

Startowy szablon silnika gier to teraz kompletny, grywalny wycinek gry RPG top-down: chodzenie po siatce, rozmowy z postaciami, przeciwnik goniący gdy...
Czytaj dalej →
14.07.2026 19:16

Moonlight Animate — system dialogów w grach

Silnik gier 2D w Moonlight Animate ma teraz kompletny system dialogów: kwestie z efektem maszyny do pisania, wybory z warunkami, zmienne fabularne i g...
Czytaj dalej →
14.07.2026 18:40

Moonlight Animate: ruchoma panorama dźwięku także w wyeksportowanym wideo

Dźwięk przejeżdżający z lewego do prawego głośnika brzmiał dobrze w podglądzie, ale eksport przez serwer zamrażał go w miejscu. Ostatnia luka parytetu...
Czytaj dalej →

📧 Bądź na bieżąco!

Zapisz się na listę oczekujących, aby otrzymywać powiadomienia o nowych postach na Dev Blog oraz informacje o starcie platformy Moonlight.