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.13.1.193 • 2024.13.1.242
wydana  wczoraj
LTS
2022.0.3.85 • 2022.0.3.99
wydana 136 dni temu
Beta
2024.1300.0.785 •
2024.1300.0.790
 0.16.1

wydana 22 dni temu
= IDE, = Runtime, = GMRT
Użytkownicy online
1 użytkownik aktywny:
gości: 1,
(~ostatnie 15 minut)
Discord
Shoutbox
gnysek (13:44, 10.04.25)
Za 3-4 miesiące GM przejdzie na wydania "półroczne", więc korzystanie z wersji beta żeby sprawdzić nowości będzie wskazane :P
Adriann (18:09, 08.04.25)
Odpowiadam, dzisiaj :D
Adriann (20:48, 04.04.25)
A kiedy te UI layery mają wejść do normalnej wersji gma?
gnysek (00:38, 11.03.25)
I jak, zobaczyłeś ? :D Trochę im zjechało na publiczny release, ale były już w ostatnich dniach lutego dostępne jak się wie, jak pobrać kandydatów do bety :P
Kuzyn (21:30, 05.03.25)
uwierzę jak zobaczę :P
gnysek (10:35, 18.02.25)
W ciągu 10 dni mają wyjść w końcu Layery UI :D
Wojo (10:25, 27.12.24)
Jak tworzyłeś* ah ta niecną autokorekta (kiedyś też stworzyłem apki na androida w sumie)
Wojo (10:23, 27.12.24)
O siemka baca, czasami myślę o tobie w kontekście tego jak tworzyłem apki na androida. Swoją drogą czasami zapominam, że forum istnieje bo cały ruch teraz utrzymuje się na discordzie, ale pora to zmienić!
Uzjel (20:17, 10.12.24)
Cały ruch przeniósł się na Discorda.
MagnusArias (17:43, 01.12.24)
O matko... a ja tutaj jestem od ponad 15 lat i czasami zaglądam... biernie bo biernie, ale czasem wpadnę
Starsze wpisy znajdziesz w Archiwum.
Ankieta
Ile zarobiłeś do tej pory na grach stworzonych w GM?