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 121 - 135):
K
kasa100 (Nie., 13 Maj. 07, 18:51)
#121

dzieki.

L
Lalu35 (Czw., 17 Maj. 07, 20:15)
#122

ta pomoc jest zajebista

Krzy100f (Pon., 11 Cze. 07, 17:11)
#123

To dobre dla poczatkujących , dlatego mi pomogło choć były problemy . małe problemy .

p
~paul (Wto., 03 Lip. 07, 10:24)
#124

Jak zrobić mgłe w strzelance 2d ? ( chodzi o to, że obszar gry jest czarny, a gdy postać chodzi odkrywa różne obszary.)

A
ARTUR URBAN (Wto., 03 Lip. 07, 18:18)
#125

Fajna ta pomoc.

ps. paul ta mgła fachowo nazywa się mgłą wojny (fog war) jak ją zrobić? nie wiem

D
Driger999 (Pią., 13 Lip. 07, 10:04)
#126

fajnie napisane ;p
Przyda sie noobkom , takim jak ja o/

Artur@ Bardziej fachowo .. Fog of War :p

p
pinker (Wto., 28 Sie. 07, 22:47)
#127

fajne,ale pomóźcie nie wiem co to znaczy if place_free do czego słuzy,a propo oceny dałbym duzo ale nie umiem:D grawitacja mi sie bardzo przydała

if place_free(x,y+1)
{gravity = 0.5}
else
{gravity = 0}

S
Snake (Wto., 28 Sie. 07, 23:17)
#128

Łopatologicznie:
Jeśli miejsce w pozycji x i y+1 jest wolne, ustaw grawitację na 0.5, a jeśli nie jest wolne to ustaw grawitację na 0

p
pinker (śro., 29 Sie. 07, 15:03)
#129

ok dzięki,na stg jest troche lepszy kurs z tą grawitacją ale dzieki,to jest tez cos takiego jakby przyspieszanie,co nie?ze zamiast tego place_free oraz gravity to speed i chodzi cos było zamiast else i jak przytzymywało sie przycisk do jechało coraz szybciej.

Tymon (śro., 29 Sie. 07, 15:31)
#130

Bo to FAQ, czyli szybkie pytania i proste odpowiedzi dla początkujących. O_o.

Jak GMclan dla Ciebie jest za "słaby" to bardzo proszę, przesiadaj się na STG. =P

p
pinker (śro., 29 Sie. 07, 21:03)
#131

nie tymon źle mnie zrozumiałes,tam był poprostu lepszy skrypt bo jest dodanie vspeed poprostu,czyli szybkosc pionowa a tu nie,i jest tam bardziej rozbudowany,to wszystko,ale wiecie co?nie ma jak w domu:D.

koko123 (śro., 29 Sie. 07, 23:54)
#132

bo hspeed'y są do pupy -.- ... To po co siedzisz na GMC?? może "klimat" lepszy?? :P

p
pinker (Czw., 30 Sie. 07, 21:47)
#133

tak,dzieki wam czuje jakbym miał rodzine,prawdziwą...

M
Mistyk^_^ (Sob., 01 Wrz. 07, 17:03)
#134

ta jasne słuchaj sie tatusia:P Dzisiaj dostaniesz lanie za nie zbanowanie Bagna. Takie to sobie

Śpiewciu_95 (Pią., 07 Wrz. 07, 20:56)
#135

da mi ktos swoje GG ,jestem poczatkujacy
nie umiem sobie poradzic;)

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?