GMS 2.3 - Struktury

Czwartek, 19 Grudnia 2019, 14:03
Czas czytania 1 minuta, 9 sekund
Zgodne z GM: gms2
Nowy typ danych w GMS 2.3

Struktury to nowy rodzaj typu danych, który pojawił się w GMS 2.3 (obecnie mamy liczby, tekst, niezdefiniowane (undefined), tablice, struktury danych (ds_xxx)).

Struktura to zmienna, która może przetrzymywać więcej zmiennych - do tej pory takie rzeczy, jak np. definicje postaci, itemów itp. trzeba było trzymać w tablicach.

kodmystruct = {
a : 20,
b : "Hello World",
c: function(a) { return 5*a; }
};
Wskazówka:
Można stworzyć pustą strukturę, kodmystruct = {};a potem dodawać do niej wartości w trakcie gry - kodmystruct.something = 5;

Można też tworzyć strukturę w strukturze, a do właściwości każdej z nich odnosimy się tak samo jak do obiektów i instancji - za pomocą znaków kropek.
kodmystruct = {
a : {
b = 5,
}
};

var c = mystruct.a.b;


Aby Usunąć strukturę z pamięci, należy użyć instrukcji delete. GMS sam stara się usuwać takowe, ale nie zawsze robi to od razu, dlatego warto mieć dobry nawyk i po sobie sprzątać (nie tylko w kodzie).
koddelete mystruct;

Jeżeli chcemy wykorzystywać taką samą strukturę do przetrzymywania różnych danych, ale nie wiemy kiedy będziemy ją potrzebowali, można skorzystać z funkcji definiującej, jak np.:
kod
function define_my_struct(a,b,c) {
return {
aaa: a,
bbb: b,
ccc: c*5,
ddd: [1, 2, 3, 4]
};
}
Komentarze (łącznie 3):
Chell (śro., 01 Sty. 20, 09:27)
#1

na pewno static tak działa? strasznie to kontrintuicyjne, w każdym innym języku to keyword metody która nie odwołuje się do instancji obiektu, a tu powołujesz się na x i y

gnysek (Pon., 06 Sty. 20, 22:45)
#2

Skopiowane z dokumentacji GMa. Bo o ile samych ficzerów nie dają, tak czasem w plikach HTML przypadkiem dają nowe funkcje opisane w zipie :P Ale też mi to trochę jeszcze dziwnie pachnie, tak samo z constructor - przy dziedziczeniu dziwnie to wygląda, jakby nie ta kolejność.

gnysek (Pią., 31 Sty. 20, 16:39)
#3

Przeniosłem te rzeczy o funkcjach do osobnego artykułu, bo trochę nowych danych doszło i funkcje to będą bardziej klasy. gmclan.org/index.php?czytajart=85

Najnowsze wersje GameMakera:

LTS
2026.0.0.16 • 2022.0.3.99
wydana 159 dni temu
Beta
2026.100.0.1195 •
2026.100.0.1132
•
 GMRT beta 0.22.4

wydana  5 dni temu
= IDE, = Runtime, = GMRT
Użytkownicy online
1 użytkownik aktywny:
gości: 1,
(~ostatnie 15 minut)
Discord
Shoutbox
gnysek (23:36, 02.11.26)
Zniknęła, stara wersja nie powinna byc dostepna. Chociaz widziałem, ze został przełącznik na górze w zębatce obok avatara, moje przeoczenie :D
Borek (20:47, 02.11.26)
Gdzie jest opcja, żeby wstąpić do bety GMCLAN? bo nigdzie nie widzę.
gnysek (11:10, 01.11.26)
teraz też wyróżnia nowe wpisy od ostatniej wizyty ;)
Borek (18:45, 31.10.26)
No, już jest lepiej :) Dalej retro, ale użyteczne :D To mi się podoba :)
gnysek (12:36, 31.10.26)
Ok, teraz jak wpiszesz więcej tekstu, to się po prostu automatycznie powiększa ;) I poprawiłem CSS dla tips/warns w artykułach i newsach na ciemnym motywie, tak porządnie. I teraz zapamiętuje "przeczytane" komentarze między przeglądarkami.
Adriann (15:31, 29.10.26)
Tak, rozumiem używanie ai jako narzędzia ale nie w ten sposób że nie widać w tym pracy człowieka :o
Borek (15:13, 26.10.26)
Nie narzekam na ruch (sam napisałem, że przynajmniej jakiś ruch jest), ale martwi mnie jakość "gier", które nagle zaczynają się pojawiać z dupy. "Catch the clown" przynajmniej był stworzony przez człowieka, tak samo jak opis na forum :)
Wojo (11:49, 26.10.26)
Nie ma ruchu - narzekacie, jest ruch - narzekacie. Nie są to gry z najwyższej półki, ale każdy robi tak jak potrafi. Za starych gmclanowych czasów było wiele produkcji amatorskiej jakości, ale dzięki temu forum tętniło życiem.
Borek (16:08, 25.10.26)
Chodzi mi o ten INPUT, jedna linia, ciężko się tutaj pizse :) Ja wiem, że retro, ale trochę QoL nie zaszkodzi :D
gnysek (16:00, 25.10.26)
A co jest nienormalnego? :D Jest takie jak zawsze było, pełne retro ;) Zerknę, w następny weekend planuję lekki update strony. 3 wpisy to nie tragedia, ale jak będzie wiecej AI slopu to pewnie zacznę kasować.
Starsze wpisy znajdziesz w Archiwum.
Ankieta
Czy udostępnienie źródła GMRT dla każdego i brak opłat za licencje jest dobrym krokiem?