Kurs GML dla początkujących
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).