Wtyczki
Wtyczki to sposób na rozszerzenie możliwości GB Studio oraz dzielenie się zasobami, tworzenie niestandardowych zdarzeń skryptowych, a nawet modyfikacje silnika gry.
Instalowanie wtyczek
Aby używać wtyczek, najpierw musisz utworzyć folder plugins
w swoim projekcie, w tym samym folderze, co plik .gbsproj
. Następnie możesz umieścić w tym folderze dowolne wtyczki.
Struktura powinna wyglądać mniej więcej tak:
Możesz potrzebować zamknąć i ponownie otworzyć projekt po dodaniu wtyczek, aby zmiany były widoczne.
Wtyczki zasobów
Najprostszym rodzajem wtyczki, jaką możesz stworzyć dla GB Studio, jest wtyczka zasobów. Pozwalają one na udostępnianie sprite'ów, tła, czcionek, dźwięków i wszystkiego, co normalnie umieszcza się w folderze assets
.
Aby stworzyć wtyczkę zasobów, najpierw utwórz nowy folder w folderze plugins
z nazwą, jaką chcesz nadać swojej wtyczce (powyżej użyliśmy assetPlugin
jako nazwy). W tym folderze możesz utworzyć dowolne normalne foldery zasobów projektu (takie jak backgrounds
) i umieścić w nich pliki. Te zasoby pojawią się normalnie w twoim projekcie, ale teraz będą łatwiejsze do spakowania i udostępniania między projektami lub innym osobom.
Pobierz przykładową wtyczkę zasobów
Wtyczki zdarzeń skryptowych
Te wtyczki pozwalają na tworzenie nowych zdarzeń skryptowych, które pojawią się wszędzie tam, gdzie używasz poleceń skryptowych.
Aby stworzyć wtyczkę zdarzenia skryptowego, najpierw utwórz nowy folder w folderze plugins
z nazwą, jaką chcesz nadać swojej wtyczce (np. myPlugin
). W tym folderze utwórz folder events
, a w nim umieść definicję JavaScript swoich zdarzeń. Zobacz kod źródłowy GB Studio dla przykładowych struktur tych plików i jak generują one wyjście GBVM. Zauważ, że nazwa pliku JavaScript wtyczki zdarzenia MUSI zaczynać się od event
, np. eventMyFirstEvent.js
.
Pobierz przykładową wtyczkę zdarzenia skryptowego
Wtyczka silnika
Wtyczka silnika pozwala na podobną funkcjonalność do wysuń silnik, ale pozwala na zmianę pojedynczych plików lub dodanie całkowicie nowych plików do silnika.
Wtyczki silnika zawierają folder engine
, który ma tę samą strukturę co wysunięty silnik gry. Poniżej możesz pobrać przykładową wtyczkę, która dodaje nową funkcję silnika gry powodującą miganie ekranu (tylko gdy tryb Kolor jest wyłączony) oraz zawiera wtyczkę zdarzenia skryptowego, aby umożliwić wywołanie nowej funkcji.
Twoja wtyczka silnika musi określać, którą wersję silnika GB Studio obsługuje. Możesz to zrobić, upewniając się, że w twojej wtyczce znajduje się plik engine/engine.json
z co najmniej dołączoną informacją o wersji silnika {"version": "4.0.0-e0"}
Pobierz przykładową wtyczkę zdarzenia skryptowego (wtyczka silnika)
Pola silnika
Wtyczki silnika mogą definiować dodatkowe pola, które pojawią się w Ustawieniach silnika.
Definiując poniższe pole i dodając zmienną max_jump_height
do twojej wersji platform.c
w wtyczce, możesz udostępnić zmienne do aktualizacji z ustawień lub skryptów za pomocą poleceń zdarzeń Silnik: aktualizacja ustawień.
{
"version": "4.0.0-e0",
"fields": [
{
"key": "max_jump_height",
"label": "Max Jump Height",
"group": "GAMETYPE_PLATFORMER",
"type": "slider",
"cType": "WORD",
"defaultValue": 16,
"min": 0,
"max": 64
}
]
}
Aby zobaczyć, jak pola silnika mogą być używane w twojej wtyczce, możesz przejrzeć wbudowany plik engine.json.
Dodatkowe typy scen
Wtyczki silnika mogą również definiować dodatkowe typy scen, które pojawią się w rozwijanym menu rodzajów podczas edytowania scen.
{
"version": "4.0.0-e0",
"sceneTypes": [
{
"key": "battle",
"label": "Battle"
}
]
}
Podczas dodawania dodatkowych typów scen musisz również zdefiniować dwie funkcje w swoim niestandardowym silniku:
void SCENEKEY_init(void) BANKED { }
i
void SCENEKEY_update(void) BANKED { }
W tym przypadku te funkcje byłyby nazwane battle_init
i battle_update
.
Funkcja init
zostanie wywołana raz podczas ładowania sceny, a funkcja update
będzie wywoływana co klatkę, co pozwala na tworzenie niestandardowych trybów gry.