Ten artykuł został stworzony dla starszych wersji GameMakera i może nie być aktualny.

Kurs GML dla początkujących

Wtorek, 07 Lipca 2009, 14:24
Czas czytania 14 minuty, 46 sekund
Zgodne z GM: gm5 gm6 gm7 gm8
Przystępnie wyjaśnione podstawy GML. Znakomity tekst dla początkujących (i nie tylko).
Ten artykuł posiada kilka stron.

Porady dotyczące dalszej nauki
Nie bój się zaglądać do pliku pomocy. Został on napisany po to, żebyś mógł łatwo i szybko znaleźć odpowiednią funkcję.Wystarczy po odpaleniu tzw. helpa wejść w Wyszukaj lub Indeks i wpisać po angielsku co nas interesuje, np. gdy chcemy poszukać funkcji związanych z rysowaniem, wpisujemy w Indeks draw i pojawia nam się spis funkcji. Wtedy wystarczy kliknąć dwukrotnie i odpali nam się rozdział gdzie mamy opisane to co nas interesuje. Jeżeli nie umiesz angielskiego na przynajmniej średnim poziomie, zajrzyj do słownika. Opisy zazwyczaj są krótkie, przez co ich tłumaczenie nie powinno zająć dużo czasu.

Jeżeli nie umiesz zrobić jakiejś rzeczy, nie martw się. Osobiście polecam metodę prób i błędów, w końcu dotrzesz do rozwiązania problemu. Jak już na prawdę nie masz pomysłów, przeszukaj artykuły i przykłady na naszej stronie lub na oficjalnej stronie Game Makera. Jest to prawdziwa skarbnica wiedzy o tworzeniu gier. Zawsze też możesz przeszukać forum, ew. się na nim zapytać, ale pamiętaj: obowiązkiem forumowiczów nie jest odpowiadanie na pytania. Jeżeli odpowiadają, to tylko z własnej, dobrej woli, dlatego nie powinieneś być bardzo nachalny.

Pisząc skrypty, zawsze możemy się posiłkować podpowiedziami. Pod miejscem gdzie piszemy kod, jest taki szary prostokąt. Pojawiają się tam funkcje, zmienne itd. które odpowiadają temu co zacząłeś pisać, np. pisząc draw_tex, pojawi się tam draw_text(x, y, string). Czasami jest to bardzo pomocne, szczególnie gdy piszemy skrypty z pamięci bez posiłkowania się plikiem pomocy.

GMLa, tak jak każdego innego języka skryptowego/programowania nie da się nauczyć w jeden dzień i sądzić że się wszystko umie, tylko po przeczytaniu pomocy. Najważniejsza jest praktyka. Czasami nawet pisząc dużo skryptów i posiłkując się plikiem pomocy można się więcej nauczyć niż tylko czytaniem go. Dlatego, powtórzę jeszcze raz - korzystaj z metody prób i błędów. Jest to najlepszy sposób, żeby się nauczyć dobrze języka.

Spis przydatnych wiadomości przy pisaniu skryptów

Kiedy chcemy ustawić alarm na konkretną ilość sekund, nie strzelaj nigdy. Alarmy są w tzw. stepach. Jest to zależne od szybkości rooma (room speed). Domyślnie wynosi ona 30, więc idąc drogą domysłu, 30 stepów to 1 sekunda. Jednak, jeżeli nie chce nam się liczyć albo nie mamy domyślnej wartości, warto skorzystać ze zmiennej room_speed. Przechowuje ona informacje o szybkości rooma. Wtedy możemy ustawić alarm wpisując tak: room_speed*<ilość sekund>. Przykładowo, po wpisaniu room_speed*5 alarm będzie wykonany po 5 sekundach.

Staraj się używać jak najmniej zmiennych, jak najczęściej korzystać z arguments oraz ograniczać ilość eventów do minimum. Na przykład, zamiast tworzyć eventy do poszczególnych klawiszy, lepiej napisać w step odpowiednią konstrukcję if.

Zamiast tworzyć sprite i dać mu animację gdzie się obraca o 360 stopni, lepiej zastosować zmienną image_angle. Wtedy tworzymy jeden sprite zwrócony w prawo i obracamy go. Korzystanie z image_angle wygląda tak: image_angle=<stopnie>. Przykładowo, gdy chcemy obrócić sprite o 240 stopni wpisujemy: image_angle=240. Można też to mieszać z innymi zmiennymi/funkcjami w których dane są zapisane w stopniach, np. image_angle=direction.

Jak chcesz sprawdzić czy skrypt nie zawiera błędów, nie odpalaj gry. Szybciej jest sprawdzić naciskając na Check the script for syntax errors. Oczywiście sprawdza on tylko składnię i poprawność napisania funkcji, zmiennych czy nazw, to warto z niego korzystać. Ewentualnie można uruchamiać grę w Debug Mode (czerwona ikonka obok Run Game).
Kurs GML dla początkujących
Komentarze (łącznie 9):
C
Ch3mical (Sob., 18 Lip. 09, 14:25)
#1

dziekuje mamrociu :*

:P

U
Undergalaxy (Pon., 20 Lip. 09, 18:18)
#2

Mi to w ogóle nie pomogło. Pamiętam kod ale nie wiem co robi itd. Mi nie pomogło, nie wiem jak wam.

Ghost (Pon., 20 Lip. 09, 20:36)
#3

Bo trzeba być człowiekiem i trochę myśleć i zastanowić się.

Misiek999 (Pon., 20 Lip. 09, 21:21)
#4

bo tego raz dwa się nie nauczysz. Potrzeba kilku miesięcy aby zrozumieć wszystkie podstawy gmla, aby czuć się w pełni swobodnie podczas kodzenia. A potem to już tylko doświadczenie, jak stworzyć to i tamto najbardziej optymalnie.

M
MisterMichu (Pią., 24 Cze. 11, 20:28)
#5

UP2@
"Ghost (20:36, 20.07.2009)
Bo trzeba być człowiekiem i trochę myśleć i zastanowić się."
Jak dotąd naukowo zostało potwierdzone , że tylko "człowiek" jest tak rozwinięty intelektualnie , by nauczyć się pisać i czytać ... :P
UP1@
Dzięki , myślałem , że tylko ja niekumaty ;)

DarkTeam (Pon., 27 Cze. 11, 13:02)
#6

Ty ,a ty wiesz że to było napisane 2 lata temu ?
Ghost (20:36, 20.07.2009) - 2009!!
Po kija odpisywać na komentarze z przed dwóch lat^^

M
MisterMichu (Wto., 26 Lip. 11, 19:00)
#7

jestem debilem i nie sprawdzam dat postów ;d

G
GROMacs (Pią., 29 Mar. 13, 12:22)
#8

mi to w ogóle nic nie pomogło nie wiem co gdzie robić jakie skrypt -,-

U
Utermiko (Pią., 29 Mar. 13, 12:59)
#9

Przeczytaj ten kurs który wprowadza do GM'a a nie uczy GML.
Co do tych skryptów. Stwórz obiekt, daj jakiś event, przejdź do zakładki Control i execute code.
Tutaj jest coś: gmclan.org/index.php?czytajart=2 oraz forum.gmclan.org/index.php?showtopic=28967

Najnowsze wersje GameMakera:

Stabilna
2024.8.1.171 • 2024.8.1.218
wydana 72 dni temu
LTS
2022.0.2.51 • 2022.0.2.49
wydana 401 dni temu
Beta
2024.1100.0.686 •
2024.1100.0.707
 0.13.0

wydana  6 dni temu
= IDE, = Runtime, = GMRT
Użytkownicy online
1 użytkownik aktywny:
gości: 1,
(~ostatnie 15 minut)
Discord
33 użytkownicy online na discordzie:
Kysiu, 🧁Cupcake🧁, Nikas, Alice, Nitro Slav, Carl-bot, Saus, GibkiKaktus, GMRussell, fervi, r..., antek, Michał Parkoła, Pako, Arrekin, MagnusArias, LadyLush, yazaa, Dyno, szmalu, Korodzik, LeD, Ulti, bagno, Tidżi, Danieo, g..., Huder, l..., moeglich, s..., Krzysiek1250, Shockah
Shoutbox
gnysek (11:46, 17.11.24)
Witamy, witamy!
baca (12:22, 16.11.24)
To już 25 lat.. Witam po paru latach nieobecności.
gnysek (11:05, 15.11.24)
Natomiast obecne forum istnieje od 2004, jak z iglu.cz na gmclan.org przeszliśmy i od tego czasu nie było resetów danych.
gnysek (12:35, 13.11.24)
Ogólnie GMCLAN istnieje 22 lata, ale na to trofeum nie zrobiłem (jeszcze xD)
Chell (20:41, 08.11.24)
wow, ta emotka w ogóle nie wygląda jak : O xD
Chell (20:40, 08.11.24)
tylko? :O 4tk ma 15
Borek (18:12, 07.11.24)
Właśnie dostałem powiadomienie z forum, że jestem na GMClanie 18 lat :D Ja pierdzielę...
S
Sutikku (08:43, 18.10.24)
TIL, gamemaker jest starszy ode mnie
gnysek (16:04, 15.10.24)
Za równo miesiąc, GameMaker kończy 25 lat.
Wojo (15:38, 05.09.24)
Ciekawe
Starsze wpisy znajdziesz w Archiwum.
Ankieta
Ile zarobiłeś do tej pory na grach stworzonych w GM?