Tutoriál na tvorbu 3D stříleček 1 - Začněme s 2D hrou

Ostatní jazyky GameMaker 3D hry Tutoriál na tvorbu 3D stříleček 1 - Začněme s 2D hrou

(Napsal Mark Overmars - (C) YoYo Games Ltd, pro devbook.cz přeložil sdraco)

V tomto tutoriálu prozkoumáme 3D kreslící funkce v Game Makeru. Možná si říkáte: "Myslel jsem si, že Game Maker byl jen pro 2D hry?". Vlastně ano, je vytvořený za účelem tvorby 2D her. Ale jsou zde funkce pro 3D grafiku. A mnoh her, které vypadají 3D, jsou ve skutečnosti 2D. V tomto tutoriálu si vytvoříme 3D střílečku. Přesto, že všechna grafika bude vypadat 3D, hra se bude odehrávat v dvourozměrném světě. Použijeme tedy standardní mechanismy Game Makeru, abychom vytvořili 2D hru, ale místo vykreslení dvourozměrné místnosti vytvoříme 3D grafiku. Jak uvidíme, není to moc obtížné. Ale potřebujete dobře rozumět jazyku GML a nebát se napsat kus kódu. Z toho důvodu je tento tutoriál pouze pro pokročilé uživatele. A nezapomínejte, že 3D funkce jsou dostupné pouze v Game Makeru Pro.

Vytvoříme si hru v několika krocích, začneme jednoduchou 2D verzí a potom přidáme 3D grafiku. Všechny fáze hry naleznete ke stažení na konci každého tutoriálu.

První 2D hra

Jak jsme zmínili výše, hraní hry bude vlastně probíhat ve 2D. Nejdříve tedy musíme vytvořit 2D hru, kterou později převedeme do 3D. Protože tentokrát nebude grafika hrát žádnou roli, nepotřebujeme efektní sprity. Všechny objekty (hráč, neprátelé, kulky, atd.) budou znázorněny barevnými kolečky. Objekty zdí budou znázorněny pomocí svislých a vodorovných bloků. V této fázi vytvoříme jednoduchou 2D scénu s místnostmi a hráčem. Další předměty vložíme později. Hru naleznete ke stažení pod názvem fps0.gmk.

Vytvoříme 2 objekty zdí: vertikální a horizontální. také vytvoříme jeden základní objekt pro zeď, který pojmenujeme obj_wall_basic. Ten bude jako parrent pro všechny objekty zdí (později si jich vytvoříme více). Uvidíme, že nám to pomůže s kolizí a vykreslováním. Objekt zdi nebude mít žádné chování. Všechny objekty zdí budou solid. Takže objekt horizontální zdi bude vypadat nějak takto:

Je to trochu nudné, vyplněny jsou jen sprite a parrent.

Další objekt, který musíme vytvořit, je hráč. Bude ho reprezentovat malé modré kolečko. Dáme mu na jednu stranu červenou tečku, abychom poznali, jakým směrem se pohybuje. To je důležité jen v 2D verzi a nepřípustné v 3D verzi. Do události End step přidáme Set variable action, kde nastavíme image_angle na direction. Tak bude červená tečka vskutku ukazovat správným směrem. Nyní pouze potřebujeme definovat pohyb. Abychom dosáhli trochu plynulého pohybu, nechceme, aby pohyb nastal náhle. Vypadalo by to v 3D verzi špatně. Takže ho postupně necháme rozpohybovat a zastavit. Za tímto účelem do události Keyboard <Up> vložíme následující kód:

{
  if (speed < 2) speed = min(2,speed+0.4);
}

Tak pomalu nabere rychlost až do maximální rychlosti 2. Do události Keyboard <Down> vložíme to samé, ale s opačným směrem. V <Left> a <Right> jednoduše zvýšíme nebo snížíme direction (směr pohybu). V události Create nastavíme proměnnou friction na 0.2, takže jakmile hráč pustí klávesu <Up>, rychlost se začne snižovat. (určitě si budete chtít pohrát s maximální rychlostí, zvýšením rychlosti a friction tak, abyste dospěli požadovaného efektu). Nakonec v události kolize s objektem obj_wall_basic zastavíme pohyb (je to trochu ošklivé a později si ukážeme, jak to udělat lépe). Protože všechny objekty zdí mají jako parrent obj_wall_basic, stačí nám definovat pouze tuto jednu kolizi.

Vytvoříme si level s různými místnostmi. Pečlivý level design zajistí, že bude hra pro hráče zajímavá. Protentokrát se omezíme na podivně vypadající místnost níže.

Příprava první 3D místnosti ve 2D

Načtěte si soubor fps0.gmk a trochu si zahrajte. Zatím to vypadá nudně, že? Příště hru převedeme do 3D.


 

Stáhnout

Staženo 1538x (10.85 kB)
Aplikace je včetně zdrojových kódů v jazyce GameMaker

 

  Aktivity (1)

Článek pro vás napsal David Čápka
Avatar
Autor pracuje jako softwarový architekt a pedagog na projektu ITnetwork.cz (a jeho zahraničních verzích). Velmi si váží svobody podnikání v naší zemi a věří, že když se člověk neštítí práce, tak dokáže úplně cokoli.
Unicorn College Autor se informační technologie naučil na Unicorn College - prestižní soukromé vysoké škole IT a ekonomie.

Jak se ti líbí článek?
Celkem (4 hlasů) :
55555


 


Miniatura
Všechny články v sekci
GameMaker - 3D hry

 

 

Komentáře
Zobrazit starší komentáře (10)

Avatar
TomBen
Redaktor
Avatar
Odpovědět 11.11.2012 17:31
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
tschmied
Člen
Avatar
Odpovídá na TomBen
tschmied:

Omg, to vím. Ale jak mezi nimy P-Ř-E-P-Í-N-A-T Taková odpověď je mi na nic

 
Odpovědět 11.11.2012 21:29
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na tschmied
David Čápka:

Tvá otázka je taky na nic, nerozvedl jsi jí a slovo přepínat jsi neuvedl. Pokud víš, jak 3D mód zapnout, nenapadlo tě, že metoda d3d_start() bude mít ekvivalent d3d_end()?

Odpovědět  +1 11.11.2012 22:00
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
HaCker
Neregistrovaný
Avatar
HaCker:

Ahoj ludia.Mam otazku ako v 3D mode urobit aby som pohyboval kamerou myskou ako napr v callof dty a vsetky tie strielacky....

 
Odpovědět 25.3.2013 8:06
Avatar
Box Andy
Člen
Avatar
Box Andy:

Mě to nejde spustit ta hra píše tam tohle:
_____________­________________________­______
ERROR in
action number 1
of End Step Event
for object obj_player:

This action is not available in the Lite Edition.

Jo a jak to odstranit?!!!!!??!! :( :-?

 
Odpovědět 5.8.2015 12:28
Avatar
Lukáš Hornych
Redaktor
Avatar
 
Odpovědět 5.8.2015 14:21
Avatar
Box Andy
Člen
Avatar
Odpovídá na Lukáš Hornych
Box Andy:

_____________­________________________­______
CHYBA v
akci číslo 1
Ke konci kroku akce
pro objekt obj_player:

Tato akce není k dispozici v Lite Edition.
To sem skoušel přeložit a opravit větu. Ale já to nechápu, stejně ne.

 
Odpovědět 13.8.2015 14:53
Avatar
Lukáš Hornych
Redaktor
Avatar
Odpovídá na Box Andy
Lukáš Hornych:

Jestli nerozumíš větám ani v češtině tak běž zpátky na první stupeň. Tomuhle jako nerozumíš? ,,Tato akce není k dispozici v Lite Edition."

 
Odpovědět  +2 13.8.2015 15:05
Avatar
Odpovídá na Box Andy
Ondřej Langr (andysekcze):

Sežeň si lepší verzi než Lite ale Masonorovic me predbehl

Odpovědět  +1 13.8.2015 20:54
I have a charger. I have Note 7. Umh I haven't Note7.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 20. Zobrazit vše