Tutoriál na tvorbu 3D strieľačiek 1 - Začnime s 2D hrou
(Napísal Mark Overmars - (C) YoYo Games Ltd, pre itnetwork.cz preložil sdraco)
V tomto tutoriále preskúmame 3D kresliaci funkcie v Game Makeru. Možno si hovoríte: "Myslel som si, že Game Maker bol len pre 2D hry?". Vlastne áno, je vytvorený za účelom tvorby 2D hier. Ale sú tu funkcie pre 3D grafiku. A mn hier, ktoré vyzerajú 3D, sú v skutočnosti 2D. V tomto tutoriále si vytvoríme 3D strieľačku. Napriek tomu, že všetky grafika bude vyzerať 3D, hra sa bude odohrávať v dvojrozmernom svete. Použijeme teda štandardné mechanizmy Game Makeru, aby sme vytvorili 2D hru, ale namiesto vykreslenie dvojrozmerné miestnosti vytvoríme 3D grafiku. Ako uvidíme, nie je to moc ťažké. Ale potrebujete dobre rozumieť jazyku GML a nebáť sa napísať kus kódu. Z toho dôvodu je tento tutoriál iba pre pokročilých používateľov. A nezabúdajte, že 3D funkcie sú dostupné len v Game Makeru Pro.
Vytvoríme si hru v niekoľkých krokoch, začneme jednoduchú 2D verzií a potom pridáme 3D grafiku. Všetky fázy hry nájdete na stiahnutie na konci každého tutoriálu.
Prvá 2D hra
Ako sme spomenuli vyššie, hranie hry bude vlastne prebiehať v 2D. Najskôr teda musíme vytvoriť 2D hru, ktorú neskôr prevedieme do 3D. Pretože tentoraz nebude grafika hrať žiadnu rolu, nepotrebujeme efektné sprity. Všetky objekty (hráč, nepriatelia, guľky, atď.) Budú znázornené farebnými kolieskami. Objekty múrov budú znázornené pomocou zvislých a vodorovných blokov. V tejto fáze vytvoríme jednoduchú 2D scénu s miestnosťami a hráčom. Ďalšie predmety vložíme neskôr. Hru nájdete na stiahnutie pod názvom fps0.gmk.
Vytvoríme 2 objekty múrov: vertikálne a horizontálne. tiež vytvoríme jeden základný objekt pre múr, ktorý pomenujeme obj_wall_basic. Ten bude ako parrent pre všetky objekty múrov (neskôr si ich vytvoríme viac). Uvidíme, že nám to pomôže s kolízií a vykresľovaním. Objekt múru nebude mať žiadne správanie. Všetky objekty múrov budú solid. Takže objekt horizontálne múru bude vyzerať nejako takto:
Je to trochu nudné, vyplnené sú len sprite a parrent.
Ďalšie objekt, ktorý musíme vytvoriť, je hráč. Bude ho reprezentovať malé modré koliesko. Dáme mu na jednu stranu červenú bodku, aby sme poznali, akým smerom sa pohybuje. To je dôležité len v 2D verzii a neprípustné v 3D verzii. Do udalosti End step pridáme Set variable action, kde nastavíme image_angle na direction. Tak bude červená bodka vskutku ukazovať správnym smerom. Teraz len potrebujeme definovať pohyb. Aby sme dosiahli trochu plynulého pohybu, nechceme, aby pohyb nastal náhle. Vyzeralo by to v 3D verzii zle. Takže ho postupne necháme rozpohybovať a zastaviť. Za týmto účelom do udalosti Keyboard <Up> vložíme nasledujúci kód:
{ if (speed < 2) speed = min(2,speed+0.4); }
Tak pomaly naberie rýchlosť až do maximálnej rýchlosti 2. Do udalosti Keyboard <Down> vložíme to isté, ale s opačným smerom. V <Left> a <Right> jednoducho zvýšime alebo znížime direction (smer pohybu). V udalosti Create nastavíme premennú friction na 0.2, takže akonáhle hráč pustí kláves <Up>, rýchlosť sa začne znižovať. (Určite si budete chcieť pohrať s maximálnou rýchlosťou, zvýšením rýchlosti a friction tak, aby ste dospeli požadovaného efektu). Nakoniec v udalosti kolízie s objektom obj_wall_basic zastavíme pohyb (je to trochu škaredé a neskôr si ukážeme, ako to urobiť lepšie). Pretože všetky objekty múrov majú ako parrent obj_wall_basic, stačí nám definovať iba túto jednu kolízii.
Vytvoríme si level s rôznymi miestnosťami. Starostlivý level dizajn zabezpečí, že bude hra pre hráčov zaujímavá. Tentokrát sa obmedzíme na podivne vyzerajúce miestnosť nižšie.
Načítajte si súbor fps0.gmk a trochu si zahrajte. Zatiaľ to vyzerá nudne, že? Nabudúce hru prevedieme do 3D.
Stiahnuť
Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami
Stiahnuté 1600x (10.85 kB)
Aplikácia je vrátane zdrojových kódov v jazyku GameMaker