11.07.2026 18:45

Silnik gier: prefaby — jeden wróg, sto instancji

⏱️ 2 min czytania
Udostępnij:

Silnik gier 2D Moonlight Studio dostał brakujący element działającej gry: prefaby. Zaprojektuj wroga, pocisk albo monetę raz — jako osobną pod-scenę — i powielaj w grze, ile potrzeba.

Jeden szablon, wiele kopii

mp.instantiate('pocisk') buduje nową kopię pod-sceny i oddaje uchwyt do niej:

local pocisk = mp.instantiate('pocisk')
mp.set_position(pocisk, {gracz_x, gracz_y})

Uchwyt reprezentuje całą instancję: ustawienie jego pozycji przesuwa cały pocisk, a mp.free(uchwyt) usuwa go w całości. Każda instancja jest w pełni niezależna — dostaje własne skrypty (ich _ready odpala się osobno) i własną tablicę stanu, więc dwa pociski nigdy nie dzielą życia ani liczników.

Także w grafie zdarzeń

Kto woli budować logikę wizualnie zamiast skryptem, ma węzeł „instantiate" z parametrem sceny i opcjonalnym rodzicem — zapisuje uchwyt do zmiennej dokładnie tak samo, jak robi to skrypt.

Bezpieczne z natury

Prośba o nieistniejącą pod-scenę zwraca pusty uchwyt zamiast wywracać grę. Scena, która przez pomyłkę tworzy samą siebie w _ready, jest ucinana na bezpiecznej głębokości — zamiast przepełnić stos. A ponieważ instancja pojawia się natychmiast, można ją pozycjonować i podpinać w tej samej klatce, w której powstała.

Co dalej

Nadchodzą: podmiana wybranych właściwości przy tworzeniu instancji (ten sam pocisk, inny kolor), pamięć podręczna wczytanej pod-sceny dla setek instancji naraz oraz edytor prefabó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.