Witam,
pisząc swój pierwszy projekt w Phaserze spotkałem kolejny problem. Tym razem dotyczy on zmiany sceny, a właściwie to tego, że sposób, którego użyłem nie działa pomimo, że według przykładów na stronie Phasera i kilku innych stron powinien działać.
Pierwsze dwie sceny mam już gotowe i chcę, aby gra po uruchomieniu startowała ze sceny MenuScreen, na której znajduje się m.in przycisk "Start", który po naciśnięciu na nim lewym przyciskiem myszy powinien zmienić obecną scenę na "InstructionScreen".
Żeby stworzyć jakąś mniej więcej spójną całość wzorowałem się na jakimś tutorialu z YouTube'a, gdzie autor nagrania utworzył początkowo pliki "index.html" oraz "game.js", a dopiero później dodał następne pliki i sceny. Zrobiłem podobnie, z tą różnicą, że plik "game.js" u mnie nazywa się "main.js". W nim zaimportowane są wszystkie sceny i dodane są do configu.
W swoim pliku "MenuScreen.js" w sekcji "Update" ustawiłem swój przycisk jako interaktywny, po próbowałem zmienić scenę za pomocą takiego zapisu:
this.startB.on('pointerup', function () { //starB to ten przycisk
this.scene.start('InstructionScreen');
}, this);
Efekt końcowy jest taki, że po naciśnięciu przycisku rzeczywiście coś się zmienia, ale nie jest to tym, czym być powinno, ponieważ kiedy kliknę na przycisk Start ekran gry robi się czarny. Nie pokazuje się wtedy dosłownie nic, tak jakby scena na którą próbuję się przełączyć nie istniała. Konsola pod F12 nie pokazuje żadnych błędów.
Próbowałem dodać "console.log("scena instrukcji");" do pliku "InstructionScreen.js" żeby sprawdzić czy chociaż to zadziała, ale niestety nawet to się nie wyświetla. Poza wcześniej wspomnianą funkcją próbowałem też innego sposobu, a mianowicie poprzez zatrzymanie aktualnej sceny i załadowanie innej, co wyglądało tak:
this.startB.on('pointerup', function() {
this.scene.stop();
this.sys.game.scene.start('InstructionScreen');
//w linijce powyżej zamiast .start próbowałem użyć również .switch, ale efekt był ten sam
}, this);
Taka metoda też nie zadziałała.
Nie wiem już gdzie zrobiłem błąd i dlaczego to nie chce działać. Czy może ktoś pomóc mi z rozwiązaniem tego problemu?
Jeżeli nie obejdzie się tutaj bez wysłania kodu, proszę tylko dać znać, z których plików, ponieważ szczerze powiedziawszy nie wiem nawet gdzie problem może leżeć i kod którego z nich powinienem zamieścić.
To jest cała struktura plików: