Administratorzy gnysek Opublikowano 31 Października 2016 Administratorzy Udostępnij Opublikowano 31 Października 2016 Hej :) Obecnie każdy średnio i bardziej zaawansowany użytkownik GM:Studio wie, że jak się robi grę, trzeba sobie zainicjować wszystkie zmienne globalne, które są potrzebne w grze (np. odpowiedzialne za progres/wynik gry, opcje, poziom trudności itp.). Najlepszym znanym nam sposobem do tej pory było stworzenie pustego roomu, a w nim albo dodanie obiektu ze skryptem, albo "room creation code", w którym to skrypcie jest inicjacja wszystkich zmiennych i na sam koniec room_goto_next(); Następnie do tego roomu już nigdy nie wracamy, a że wyświetla się tylko jedną klatkę, to go z reguły nie widać (najlepiej jeszcze dać czarne tło). Niestety, jak zrobimy game_restart() to te skrypty się wykonują ponownie, a jeśli używamy np. jakiegoś DLLa, albo doczytywania spritów z pliku, to trochę nam to nie na rękę. Trzeba samemu zaprogramować grę tak, żeby resetowała potrzebne zmienne i wracała do drugiego w grze roomu. ALE - JEST ROZWIĄZANIE!!!! Tworzymy dowolny skrypt inicjujący grę. Teraz w dowolnym skrypcie w dowolnym miejscu (ale sugeruję na górze tego inicjującego), wpisujemy: GML gml_pragma("global", "nazwa_skryptu()"); I to wszystko. Ten skrypt zostanie wykonany jeszcze przed eventem Game Start, a jak zrobicie game_restart() to już go nie wykona. gml_pragma nie jest fukcją, a poleceniem dla kompilera, żeby ten skrypt wykonać przed rozpoczęciem właściwej pętli gry GM:Studio :) Można dać kilka skryptów w ten sam sposób, kolejność wykonania zależy zapewne od kolejności w resource tree a potem od linijki w kodzie. Polecenie wywołujące skrypt nie musi być w tym samym skrypcie, chociaż jest to najczytelniejsze :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 31 Października 2016 Udostępnij Opublikowano 31 Października 2016 YYC only :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 31 Października 2016 Autor Administratorzy Udostępnij Opublikowano 31 Października 2016 Sam jesteś YYC only. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 31 Października 2016 Udostępnij Opublikowano 31 Października 2016 A no to dokumentacja kłamie :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 31 Października 2016 Autor Administratorzy Udostępnij Opublikowano 31 Października 2016 W dokumentacji tego nie ma, dokumentacja mówi o gml_pragma("forceinline"); . I to ustawienie faktycznie kompiler łyka tylko, jeśli jest YYC. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się