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:

Stabilna
2024.14.4.222 • 2024.14.4.268
wydana 61 dni temu
LTS
2026.0.0.16 • 2022.0.3.99
wydana 7 dni temu
Beta
2024.1400.5.1065 •
2024.1400.5.1031
 0.19.0

wydana 22 dni temu
= IDE, = Runtime, = GMRT
Użytkownicy online
2 użytkowników aktywnych:
gości: 1, userów: 1
 Bartek (Kamrat)
(~ostatnie 15 minut)
Discord
36 użytkowników online na discordzie:
Morti, 🧁Cupcake🧁, HappyOrange, LeD, Carl-bot, pABLO, p..., 21Lancz, Wielki Druid, Destiny, Kuzyn, Soplyash, 𝕯𝖎𝖆𝖓𝖆, r..., Threef, RogerDodg3r, s..., Pako, Murrri, Jarkozpl, Dyno, 🆅🅸🆃🅾74🅼, szmalu, OdrzuconyKrakers, Skovv, bagno, Arrekin, Tidżi, Sebastus I, Mtax, GreenClover, Sporek, Cebul, h..., Shockah, xVANiLL
Shoutbox
gnysek (11:13, 05.05.26)
czekamy na GMRT
Wojo (14:53, 04.05.26)
Co tak cicho?
gnysek (11:01, 30.04.26)
Grill panie, grill.
Wojo (14:18, 29.04.26)
Jak planujecie spędzić najbliższą majówkę?
Wojo (13:15, 13.03.26)
Ja zainstalowałem sobie Linux mint na swoim laptopie :)
Wojo (10:21, 12.02.26)
Tak, po zmianach gmclan przeżywa drugą młodość. Najnowsze trendy wskazują, że ten rok będzie rokiem Linuxa, rokiem odejścia od Facebooka i rokiem odejścia od discorda na rzecz forów internetowych B)
K
Kamilek (21:57, 08.12.25)
Ale klimat tu znowu wrócić! :-D
Wojo (13:03, 07.12.25)
Żeby nie było to jednak discord jest żywy :)
Wojo (12:50, 07.12.25)
Ehh znak czasu. Prawie dwa miesiące ciszy w shoutboxie, na forum też raczej cisza i jest głównie swego rodzaju archiwum ostatnich dwóch dekad
gnysek (16:01, 16.10.25)
To już google decyduje. Mam wrażenie, ze po datach obcina stare treści.
Starsze wpisy znajdziesz w Archiwum.
Ankieta
Ile zarobiłeś do tej pory na grach stworzonych w GM?