Skocz do zawartości

Jak i gdzie deklarować zmienne globalne?


Qbi Wan

Rekomendowane odpowiedzi

Technicznie wiem że za pomocą global. albo globalvar. Jednak mimo to wyskakuje mi błąd że "nieznana zmienna". Rozumiem że jeżeli są to zmienne globalne definiuję je raz i potem ewentualnie modyfikuje. Tymczasem nawet gdy kontrolerowi w Create ustawiłem kolejno wszystkie zmienne globalne z jakich będę korzystał wywala mi błąd. Te zmienne są ograniczone do jednego roomu, czy coś??

 

PS. Jaka komenda odpowiada klockowi control - different room

Odnośnik do komentarza
Udostępnij na innych stronach

Rozwiązanie jest proste. Kod w obiektach wykonuje się wg kolejności w jakiej postawiłeś obiekty w room. Jeżeli pierw postawiłeś obiekt który pracuje na zmiennej, a po nim obiekt w którym deklarujesz zmienną to będziesz mieć błąd.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

Najlepiej zrobić room, w którym są ustawiane globalne, a potem iść do następnego i tam kontynuować grę, nigdy nie wracając do pierwszego.

 

Btw.:

GML
globavar X; // nazwanie zmiennej, ale nadal bez wartosci, pół zdefiniowania

X = 0; //nadanie wartosci i zdefiniowanie do konca</span>
Odnośnik do komentarza
Udostępnij na innych stronach

Sorki że po takim czasie piszę :jezor:

 

Super pomysł z tym roomem, dzięki. Czyli globalne działają nie tylko między instancjami, ale i między roomami? Domyślałem się, ale miałem wątpliwości. Globalne w tym roomie deklarować w Creation code czy jakimś obiektem kontrolującym?

 

Mam jeszcze pytanie odnośnie samego sterowania pokojami, nie wiem czy kontynuować to tu, czy w nowym temacie:

 

1. W jakiej kolejności przyznawane są indeksy roomom?

 

2. Bawiłem się funkcją room_assign(). W Contents w GM w opisie jest napisane że: "Assigns the indicated room to room ind. So this makes a copy of the room". Wg mnie tworzy kopię roomu i nadaje mu podany index. W internecie znalazłem taką definicję: "This function will copy one room to another, removing all instances, tiles etc... from the room that is being copied to and replacing them completely with the new room contents." Więc usuwa instancje, tilesy itd... z pokoju docelowego i zastępuje je całkowicie nową zawartością. Jednak po wykorzystaniu przywitał mnie pusty pokój :lol2: Do czego jest ta funkcja?

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

W GM:Studio indeksy są w kolejności w drzewie zasobów i nie zostawiają przerw (poza zasobami usuniętymi w trakcie działania gry). W GM 8 i wcześniejszych faktycznie numeracja jest taka, jak przy tworzeniu zasobów (czyli object15 ma index 15, nawet jak zmienisz mu nazwę i kolejność w drzewku, a czternasty usuniesz)

Odnośnik do komentarza
Udostępnij na innych stronach

Wciąż coś jest nie tak z roomami:

 

Mam pierwszy room który posiadadwa guziki testowe do szybkiej nawigacji między pokojami - prev i next - (persistant) i guzik OPTIONS. W event LPM ma polecenie Diffrent Room (próbowałem też room_goto()) powinien przenieść do pokoju gdzie jest w rogu jeden guzik BACK. Tymczasem go nie ma, są jedynie te dwa persistanty. Łącznie mam 4 pokoje które posiadają różne guziki (lub akcje create na LPM), a przełączając persistantami pojawiają się puste pokoje, lecz w zgodnej liczbie (ind. 0 - 3, dalej wywala błąd).

 

Co robię źle? Mam screeny, jeżeli będą potrzebne to jutro tu wstawię.

 

Czy to możliwe że plik zapisu się zepsuł? Stworzyłem nowy, prosty projekt z dwoma roomami: jeden ma ikonę do przenoszenia do drugiego, a drugi ma inną ikonę do przenoszenia do pierwszego i działa poprawnie. Zrobiłem coś nie tak? Może coś w global game setting? Co jest powodem?

Odnośnik do komentarza
Udostępnij na innych stronach

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ę
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...