Instance exists – problem z ujemnymi wartościami

Dodany: 28 stycznia, 2011 | Kategoria: Game Maker

W GM jest dość ciekawy byk. Stworzyłem tablicę w której zapisuję id obiektów i założyłem, że brak obiektu oznaczę poprzez cyfrę -1. Niestety coś nie chciało działać jak powinno i skrypt który miał owe obiekty z listy niszczyć tylko gdy istnieją, usuwał totalnie inny obiekt niż powinien. Szukałem zatem kilkadziesiąt minut i… okazało się, że oba zapisy są równoważne:

1
instance_exists(-1) == instance_exists(self)

Poszukałem więc jeszcze trochę, i tym oto sposobem wyszło, ze każda z super zmiennych ma przypisaną ujemną wartość:

1
2
3
4
5
self == -1;
other == -2;
all == -3;
noone == -4;
global == -5;

Uważajcie więc tworząc gry, żeby się nie nadziać :)

Tagi: , , , , , , , , , , Brak komentarzy »

Zmienne lokalne, globalne i tymczasowe – GML

Dodany: 21 stycznia, 2011 | Kategoria: Game Maker

(opublikowano na: http://gmclan.org/index.php?czytajart=73)

Zmienne w GM można podzielić na 3 typy: tymczasowe, lokalne i globalne.

Zmienne globalne:

Zmienna globalna to taka, która dostępna jest dla wszystkich obiektów w jednym jej egzemplarzu. GM posiada kilka wbudowanych zmiennych globalnych, np. fps – liczba klatek na sekundę jest jedna dla całej gry. Nie ma innej liczby klatek dla jednego obiektu, innej dla drugiego – z każdego obiektu uzyskamy tą samą wartość w danej chwili.
Własne zmienne globalne poprzedzamy słowem global oraz kropką, po której następuje nazwa tej zmiennej. Przeczytaj dalszą część wpisu »

Tagi: , , , , , , , , 2 komentarze »