11.07.2026 15:40

Silnik gier: warstwy kolizji — kto z kim się zderza

⏱️ 2 min czytania
Udostępnij:

Pocisk gracza nie powinien trafiać gracza, duch ma przechodzić przez ściany, a niektóre platformy są tylko dla wrogów. To klasyczny problem, na który silniki mają klasyczne rozwiązanie — i nasz właśnie je dostał: warstwy kolizji.

Każdy kolider deklaruje dwie rzeczy: na których warstwach jest (32 warstwy, maska bitowa) i z którymi warstwami się zderza. Filtr jest dwustronny — do zderzenia dochodzi tylko wtedy, gdy obie strony się nawzajem akceptują. Domyślnie wszystko zderza się ze wszystkim, więc istniejące gry działają bez żadnych zmian; jedna liczba na koliderze wystarczy, żeby cała klasa obiektów przestała się widzieć.

Warstwy rozumieją też promienie z poprzedniego łuku: mp.raycast przyjmuje opcjonalną maskę (linia wzroku strażnika może ignorować szybę, po której pocisk się jednak zatrzyma), a węzeł-sonda ma własne pole maski. Brak maski — lub idiomatyczne -1 — oznacza wszystkie warstwy.

Testy pokrywają całą macierz: promień jednej warstwy „widzi przez" płytkę innej i trafia podłogę za nią, skrzynka spada przez platformę, która jej nie akceptuje, a skrypty i graf logiki dają identyczne wyniki. Audyt dorzucił rzecz niepozorną, ale ważną dla przyszłego wydania przeglądarkowego: konwersje wartości maski ze skryptów przechodzą przez bezpieczną ścieżkę całkowitą — bez tego -1 z Lua, na komputerze niegroźne, potrafiłoby zatrzymać grę w przeglądarce.

Fizyka silnika ma tym samym komplet fundamentów: ciała, postać ze ślizgiem, strefy, promienie i filtry. Dalej — kolejne klocki treści.

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