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 yoyogames.com.
Starsze wersje znajdziesz w tym miejscu.

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. Tutaj 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
tym adresem.

5. Gdzie mogę znaleźć jakieś kursy, przykłady, ogólnie rzecz biorąc pomoc dotyczącą programu?
Przede wszystkim w tym serwisie. Tutaj masz kursy, tu dużo plików (w tym przykładów - bardzo przydatnych dla początkujących). Możesz również zajrzeć do działu z linkami, a także na oficjalną stronę Game Makera (głównie działy Games, Tutorials, Resources). W trakcie tworzenia korzystaj z polskiego tłumaczenia helpa. 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 naszym forum - 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, kurs GML dla początkujących autorstwa Marmota , a także inne kursy GMLa w naszym serwisie. Pomóc ci może również Action Decoder.

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 tym artykule oraz tym artykule.
***

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 1 - 15):
l
lion (Wto., 27 Lip. 04, 16:56)
#1

buuuuuuuuuuuuuuu... tylko jedno pytanie ??:(

Marmot (Wto., 27 Lip. 04, 18:43)
#2

mi się wydaje że ranma będzie dodawać jak ktoś będzie o coś pytać na forum a mu się spodoba ;P

a
~a ja mam pytanie (śro., 11 Sie. 04, 12:59)
#3

NA TEJ STrONIE NIE MA ŻADNEGO POŻĄDNEGO TUTORIALA!

Ranma_man (śro., 11 Sie. 04, 13:35)
#4

Jak słono mi zapłacisz to ci napiszę porządny, jak nie... to radź sobie sam, albo odpuść sobie tego progsa. :]

M
~Mario (Pon., 06 Wrz. 04, 16:30)
#5

Powiem szczerze, że 1 przykład to troche za mało by nas zadowolić...Ale jest poprawny i może sie do czegoś przydać...jestem początkującym więc pierwszy raz coś takiego widzę!!:P

j
~jakiś taki dziwny traf... (Pon., 06 Wrz. 04, 16:32)
#6

Ranma_man może zrób przykład jak zmienić kursor myszki?:))

Ranma_man (Pon., 06 Wrz. 04, 22:24)
#7

Do tego jest odpowiednia nowa funkcja w najnowszym game makerze. W tej chwili jej nie pamiętam.

Marmot (Wto., 07 Wrz. 04, 22:26)
#8

Przydało by się więcej tego. Np. takie rzeczy o które często się pytają w postach dać tutaj, albo odpowiedzi z postów zamieścić poprostu tutaj i git!

B
~BloB (śro., 16 Lut. 05, 08:02)
#9

WLASNIE nie ma nic konkretnego wez ktoz zrob jakis cykl kurow czy cos bo te po nagielsku sa za trudne.... ;(

Marmot (śro., 16 Lut. 05, 16:31)
#10

Tutaj jest dość sporo kursów na tej stronie :)

~ (Wto., 01 Mar. 05, 17:28)
#11

Buu jak robićobiekt który by nas rozwalał albo jakiś bonus?

Marmot (Wto., 01 Mar. 05, 20:50)
#12

Zapytaj się na forum i trochę rozszerz zapytanie!

A
~Adam (Pon., 23 Maj. 05, 15:30)
#13

jak stworzyc Test??????????????????????????????? :/

Marmot (Pon., 23 Maj. 05, 18:51)
#14

Heh, z pytaniami na forum!

M
Michal999 (Pią., 27 Maj. 05, 16:15)
#15

niech ktos mi przesle game makera

Najnowsze wersje GameMakera:

Stabilna
2024.2.0.132 • 2024.2.0.163
wydana 15 dni temu
LTS
2022.0.2.51 • 2022.0.2.49
wydana 154 dni temu
Beta
2024.400.0.516 • 2024.400.0.537
wydana  5 dni temu
= IDE, = Runtime
Użytkownicy online
1 użytkownik aktywny:
gości: 1,
(~ostatnie 15 minut)
Discord
31 użytkowników online na discordzie:
DungeonFairy🧚, s..., Alice, Nitro Slav, Carl-bot, p..., Grela, Add92, SuperEnduro, Kowu, Kuzyn, OdrzuconyKrakers, Filyps, fervi, YoungKrystian, Kalor, PhysX ᴺⱽᴵᴰᴵᴬ, r..., 🧁Cupcake🧁, antek, lethian, HappyOrange, Pako, Arrekin, Dyno, Ulti, bagno, g..., moeglich, Shockah, exigo
Shoutbox
I am Lord (19:15, 17.03.24)
6h mam na to hmmm
I am Lord (19:06, 17.03.24)
Ale temat fajny
gnysek (01:33, 13.03.24)
Powinno działać, jest w kodzie sortowanie wg. najbliższego startu :)
Uzjel (21:59, 11.03.24)
Nie, ale za pierwszym razem zrobiłem fuckup, że było "Tura testowa" X_X
I am Lord (16:58, 11.03.24)
A co Uzjel już masz nawymyślane 100 tematów? 😅
Uzjel (20:08, 10.03.24)
@gnysek a jak bym dodał kilka lig na raz to walnie?
Uzjel (20:08, 10.03.24)
Liga będzie zawsze od piątku 16:00 do poniedziałku 23:59, zawsze w środku miesiąca.
gnysek (08:48, 10.03.24)
Tak, to też jest do poprawy X_X
Adriann (18:22, 09.03.24)
Tylko myślę czy nie leiej gdyby mówiło że zostało tyle i tyle dni i ileś godzin a nie tylko w godzinach ;d Albo konkretna data obok, byłoby czytelniej
I am Lord (15:08, 08.03.24)
o super z tą ligą :)
Starsze wpisy znajdziesz w Archiwum.
Ankieta
Ile zarobiłeś do tej pory na grach stworzonych w GM?