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

Game Maker FAQ

Piątek, 02 Lipca 2004, 10:51
Czas czytania 9 minut, 50 sekund
Zgodne z GM: gm5 gm6 gm7 gm8 gms1
Spis podstawowych zagadnień, prostych technik i przydatnych algorytmów, prowadzony w formie FAQ (pytania i odpowiedzi).
Uwaga! Numeracja pytań może ulec zmianie, więc jeśli trafiłeś tu z jakiegoś starego linku i nie znalazłeś odpowiedniego pytania pod danym numerem, to nie zniechęcaj się i poszukaj go pod innymi numerami.

1. Skąd mogę ściągnąć Game Makera?
Najnowszą wersję programu możesz zawsze znaleźć na jego oficjalnej stronie [URL=yoyogames.com/gamemaker/try]yoyogames.com[/URL].
Starsze wersje znajdziesz w [URL=wiki.yoyogames.com/index.php/Old_Game_Maker_Versions]tym miejscu[/URL].

2. Czy jest polska wersja Game Makera?
Nie, nie ma i w najbliższym czasie raczej nie będzie.

3. Co daje rejestracja Game Makera?
M.in. nowe możliwości edycji spriteów, nowe funkcje (rysowania, dźwięku, gry multiplayerowej), efekty graficzne, a także wiele innych, przydatnych rzeczy. Rejestracja pozwala również pozbyć się bannera Game Makera podczas ładowania gry. [URL=gamemaker.nl/download/regdemo.zip]Tutaj[/URL] możesz ściągnąć przykład ukazujący nowe funkcje.

4. Ile kosztuje rejestracja Game Makera? Jak mogę go zarejestrować?
Rejestracja Game Makera kosztuje 10 Funtów, 15 Euro albo 20 USD. Do zakupu wymagana jest karta kredytowa, lub karta debetowa z aktywną opcją płatności przez internet. Rejestracji można dokonać (również z Polski) pod
[URL=yoyogames.com/gamemaker/buy]tym[/URL] adresem.

5. Gdzie mogę znaleźć jakieś kursy, przykłady, ogólnie rzecz biorąc pomoc dotyczącą programu?
Przede wszystkim w tym serwisie. [URL=gmclan.org/index.php?artykuly=15]Tutaj[/URL] masz kursy, [URL=gmclan.org/index.php?pliki=1]tu[/URL] dużo plików (w tym przykładów - bardzo przydatnych dla początkujących). Możesz również zajrzeć do [URL=gmclan.org/index.php?linki]działu z linkami[/URL], a także na [URL=gamemaker.nl]oficjalną stronę Game Makera[/URL] (głównie działy Games, Tutorials, Resources). W trakcie tworzenia korzystaj z [URL=gmclan.org/index.php?wiki]polskiego tłumaczenia helpa[/URL]. Gdy nie znajdziesz rozwiązania swojego problemu (najpierw sprawdź wszystkie podane źródła, a także poszperaj w tym FAQu), to próbuj na [URL=forum.gmclan.org]naszym forum[/URL] - z pewnością ktoś ci pomoże.

6. Co to jest GML?
Jest to Game Maker Language - wbudowany język Game Makera, którym posługujemy się pisząc skrypty itp. Warto się na niego przerzucić, bo daje lepsze efekty niż tzw. "klocki". Jeśli trudno ci się w nim odnaleźć, to czytaj helpa w GMie, [URL=gmclan.org/index.php?czytajart=34]kurs GML dla początkujących[/URL] autorstwa Marmota , a także [URL=gmclan.org/index.php?artykuly=17]inne kursy GMLa[/URL] w naszym serwisie. Pomóc ci może również [URL=gmclan.org/index.php?pliki=2]Action Decoder[/URL].

7. Jak zapisać grę tak, aby mogli ją odczytać ludzie, którzy nie mają GMa (w pliku wykonywalnym)?
Żeby zapisać grę w formacie 'exe' należy wybrać 'File->Create Executable' i wskazać gdzie zapisać plik.

8. Game Maker nie chce otwierać niektórych plików. Dlaczego?
Formaty plików obsługiwane przez Game Makera różnią się w kolejnych odsłonach programu. GM7.x obsługuje format .gmk, GM6.x .gm6, a GM5.x .gmd.
Game Maker 6 i 7 mogą otwierać starsze rozszerzenia. By to zrobić, kliknij File -> Open, a następnie wybierz w liście typów plików (Pliki typu: ) "Old Game Maker Files". Ten sposób jednak nie gwarantuje pełnej kompatybilności starych plików z nowszą wersją.

***

9. Gdzie powinienem wpisać te wszystkie skrypty w GMLu?
Istnieje specjalny klocek 'Execute a piece of code'. Znajduje się on w zakładce 'control'. Klocek ten dodajemy do obiektów, które tworzymy tak samo jak inne zasoby - w menu 'Add->Add Obiect'.
Możesz też używać 'Scriptów', które tworzysz jak inne zasoby gry - klikając w menu 'Add->Add Script'. Zastępują one funkcje i pozwalają na wielokrotne wykonanie tego samego kodu. Używa się ich za pomocą klocka 'Execute Script' w zakładce 'control'. Ostatnią możliwością wpisania skryptów jest Creation Code Room'u. Znajdziemy go w settings nowo utworzonego roomu.

10. Co zrobić, żeby ekran gry przesuwał się wraz z bohaterem?
Otwieramy room i przechodzimy do zakładki 'Views'. Zaznaczamy 'Enable the use of Views' i 'Visible when room starts'. Następnie w ramce 'Object following' wybieramy obiekt, za którym ma podążać ekran.

11. Jak zrobić obiekt podążający za myszką oraz wyrównany do siatki?
Dla siatki o rozmiarze pola 20x30 skrypt wygląda następująco:kodx = mouse_x div 20 * 20;
y = mouse_y div 30 * 30;
Wpisujmy go w evencie "step" obiektu docelowego. Polega to tylko na zaokrągleniu wartości zmiennych x, y.

12. Jak zrobić przedmiot (np. lufę czołgu), który obraca się w stronę celownika/kursora myszy?
Odpowiedni kod wygląda tak:koddirection=point_direction(x,y,celownik.x,celownik.y);
image_angle=direction
Wrzucamy to w "step" przedmiotu, który się obraca. Sprite tego przedmiotu powinien być zwrócony w prawo.

Lub dla wersji niezarejestrowanej. Tworzymy animację obracającego się ludzika (można do tego użyć opcji 'Animation->Roation sequence' w 'Edit sprite' ). A następnie wpisujemy w STEP:koddirection=point_direction(x,y,celownik.x,celownik.y)
image_single = direction * image_number/360;

13. Jak zrobić grawitację w grze platformowej?
Najpierw tworzymy obiekt blok, po którym będzie chodził bohater. Należy pamiętać, że blok ma być solid. Następnie robimy obiekt hero, któremu w "step" wklejamy kod:kodif place_free(x,y+1)
{gravity = 0.5}
else{gravity = 0}
Przy kolizji z blokiem:kodmove_contact_solid(270,4)
vspeed = 0
Przy naciśnięciu klawisza w prawo:kodif place_free(x+4,y)
{x+=4}
Przy naciśnięciu klawisza w lewo:kodif place_free(x-4,y)
{x-=4}
Przy naciśnięciu klawisza w górę (skakanie):kodif ! place_free(x,y+1)
{vspeed = -10}

14. Jak zrobić poruszanie się bohatera w stylu pierwszych części GTA?
Tworzymy animację obracającego się ludzika (można do tego użyć opcji 'Animation->Roation sequence' w 'Edit sprite' ). Następnie tworzymy odpowiedni obiekt i w "step" wpisujemy mu:kodimage_single = direction * image_number/360;
if (keyboard_check(vk_left))
direction+=5;
elseif (keyboard_check(vk_right))
direction-=5;

if (keyboard_check(vk_up) )
speed=3;
elseif (keyboard_check(vk_down) )
speed=-2;
elsespeed=0;

15. Co zrobić, żeby obiekt1 szedł w stronę obiekt2?
W "step" obiekt1 wpisujemy:kodmove_towards_point(obiekt2.x,obiekt2.y,szybkosc) Zamiast 'szybkosc' wpisujemy odpowiednią liczbę.

16. Jak zrobić aby postać przeskakiwała o 24 pixele w prawo, lewo, górę i dół?
W "step" postaci, która ma się poruszać:kodif keyboard_check_pressed(vk_left)x-=24
if keyboard_check_pressed(vk_right) x+=24
if keyboard_check_pressed(vk_up)y-=24
if keyboard_check_pressed(vk_down) y+=24

17. Jak zrobić 'strzelanie'?
W obiekcie, który ma strzelać (w evencie przy nacisnięciu wybranego klawisza):kodif keyboard_check(vk_control)
{
instance_create(x,y,obiekt_pocisk);
}
W "create" obiektu, który jest pociskiem wrzucamy jeden z czterech kodów:kodvspeed = (-10); //strzelanie do góry
vspeed = (10); //strzelanie w dół
hspeed = (10); //strzelanie w prawo
hspeed = (-10); //strzelanie w lewo

18. Jak zrobić prześwitujący obiekt?
W 'create' danego obiektu wpisujemy:kodimage_alpha = 0.5;Pamiętaj że wartość alpha może wynosić tylko od 0 do 1.

19. Jak zrobić wyświetlanie ilości klatek na sekundę (FPSów)?
W "draw" wpisujemy:koddraw_text(view_xview,view_yview,'FPS: '+string(room_speed)+' / '+string(fps));
20. Co zrobić, żeby dana akcja miała miejsce dopiero po zbliżeniu się obiektu1 do obiektu2 na odpowiednią odległość?
W stepie któregoś z obiektów wpisz:kodif distance_to_object(obiekt_2) < ilosc_pixeli
{
//wykonaj akcję
}

21. Jak otworzyć stronę internetową z gry/programu stworzonego w GM?
Przy danej akcji (np. kliknięciu w przycisk z napisem 'WWW' ) wykonaj ten kod:kodexecute_shell('gamemaker.pl',0);
22. Znikł mi mój obiekt pomimo że ma ustawionego sprita i umieściłem go w określonym roomie, co zrobić?
Sprawdź czy obiekt ma zaznaczoną opcję 'Visible', lub jeśli używasz w nim eventu 'draw' dodaj w nim taką linijkę:koddraw_sprite_ext( sprite_index, image_index, x, y, image_xscale, image_yscale, image_angle, image_blend, image_alpha );Zawsze gdy używasz tego eventu GM wyłączy Ci automatyczne rysowanie obiektu, więc musisz to zrobić ręcznie.

23. Chcę zmienić domyślnie ustawiony kursor na inny, jak to zrobić?
Jeśli chcesz użyć jednego z domyślnych wskaźników to musisz wykonać kod:kodwindow_set_cursor( <kursor> );I wpisać w miejsce <kursor> jeden z tych:kodcr_defaultcr_nonecr_arrowcr_crosscr_beamcr_size_neswcr_size_nscr_size_nwsecr_size_wecr_uparrowcr_hourglasscr_dragcr_nodrop
cr_hsplit
cr_vsplit
cr_multidrag
cr_sqlwait
cr_no
cr_appstartcr_help
cr_handpointcr_size_all
Jeśli chcesz stworzyć własny kursor z jakiegoś obrazka to wpisz w 'draw':kodwindow_set_cursor( cr_none );
draw_sprite( <sprite_kursora>, -1, mouse_x, mouse_y );
W miejsce <sprite_kursora> należy wpisać nazwę sprita który ma być kursorem.

24. Jak zrobić żeby życie chodziło za bohaterem?
Musisz ustawić x i y rysowania żyć, bądź obiektu żyć na x i y viewa. Możesz to zrobić tak:kodx = view_xview;
y = view_yview;

25. Chcę, aby po zniknięciu wszystkich monet z planszy nastąpiła jakaś akcja. Jak mam to zrobić?
kodif instance_number(obj_moneta) == 0
{
//akcja
}
Oczywiście w miejsce obj_moneta można również wpisać nazwę jakiegokolwiek innego obiektu.

26. Jak zrobić grę MMORPG?
Przed tobą jeszcze długa droga. Potrenuj robienie małych gierek (platformówki, shootery) i stopniowo podwyższaj poprzeczkę. MMORPGi to zadanie dla zaawansowanych i nie jest łatwe. Wymaga wielu miesięcy (a czasem nawet lat) pracy.

27. Jestem nowy i chcę zrobić jakaś fajną grę w teamie. Gdzie mogę zebrać ekipę?
Najpierw zadaj sobie pytanie: "Co ja będę robić?". Żeby zachęcić ludzi do współpracy musisz pokazać na co cię stać, co umiesz. Nikt nie dołączy do Twojego teamu kompletnie Cię nie znając.

28. Jak zmienić prędkość animacji ?
kodimage_speed=0.5 //domyślnie 1 Oczywiście można ustawić dowolną prędkość animacji.

29. Jak sprawić, aby dana czynność wykonywała się cyklicznie, lub po jakimś czasie?
Należy skorzystać z Alarmów. Szerzej to zagadnienie zostało omówione w [url=gmclan.org/index.php?czytajart=64]tym artykule[/url] oraz [URL=gmclan.org/index.php?czytajart=51]tym artykule[/URL].
***

Autorzy: Ranmus, Patrysław, Marmot, Bigshark, Dark Maximal, kasmilus, Moho, Tymon, LionX, Dawidsu, Blackmaul, Kasa100, Matthew, Mimek, gnysek.
Ostatni update: 02 lipca 2009

215404
Komentarze (łącznie 393, wyświetlam 256 - 270):
S
Snake (Wto., 08 Lip. 08, 17:29)
#256

Jak nie potrafią to trudno - nie korzystać z cracków i ma się spokój.
Kurs... nie chciałoby mi się tyle pisać ;D

Tymon (Wto., 08 Lip. 08, 18:51)
#257

No właśnie, wszyscy mają lenia. xD

S
Snake (Wto., 08 Lip. 08, 18:53)
#258

Dokładnie xD

Y
Yoda (Wto., 08 Lip. 08, 22:25)
#259

No kurde xD

Dark Maximal (Wto., 08 Lip. 08, 23:38)
#260

Iksde! xD

Marmot (śro., 09 Lip. 08, 14:43)
#261

OMGWTFBBQ!

TakeThis (Sob., 02 Sie. 08, 23:12)
#262

Oo zrobili kilka punktow xD

Dark Maximal (Nie., 03 Sie. 08, 10:25)
#263

Te dwa ostatnie jeszcze ulegną rozbudowie, jak tylko mnie wena napadnie. ;P

TakeThis (Nie., 03 Sie. 08, 13:22)
#264

Dodajcie taki punkt:

"Jak zrobić grę mmorpg?
Cza fpisać skrypd:
[kod]make_mmorpg();[/kod]

I już się ma mmorpg! =D"

l
lenin (Nie., 03 Sie. 08, 13:31)
#265

tiaa za dużo "muotka" czytasz...

Matthew (Nie., 03 Sie. 08, 13:40)
#266

Thx Max za poprawki ;)

TakeThis2 (Pią., 29 Sie. 08, 12:29)
#267

Nie działa mi 12 punkt :/ Mam w step:

direction=point_direction(x,y,celownik.x,celownik.y)

x=object0.x
y=object0.y

Qpa :(

M@ti002 (Pią., 29 Sie. 08, 13:10)
#268

dodaj jeszcze image_angle=direction

k
Kubalaa123 (Sob., 01 Lis. 08, 09:35)
#269

odpowiedzal ktos??

k
kajak00 (Nie., 16 Lis. 08, 14:59)
#270

a jak zrobić na klockach zeby od object1 leciał pocisk object2

Najnowsze wersje GameMakera:

Stabilna
2024.8.1.171 • 2024.8.1.218
wydana 73 dni temu
LTS
2022.0.3.83 • 2022.0.3.98
wydana  wczoraj
Beta
2024.1100.0.686 •
2024.1100.0.707
 0.13.0

wydana 7 dni temu
= IDE, = Runtime, = GMRT
Użytkownicy online
1 użytkownik aktywny:
gości: 1,
(~ostatnie 15 minut)
Discord
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?