Tutoriál na tvorbu bludišťových her 1 - Jednoduchý začátek

Ostatní jazyky GameMaker Bludišťovky Tutoriál na tvorbu bludišťových her 1 - Jednoduchý začátek

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

Bludišťové hry jsou velmi populární žánr a v Game Makeru se jednoduše vytváří. Tento tutoriál ukazuje, jak vytvořit takovouto hru v několika jednoduchých krocích. Výhodou je, že od prvního kroku máme spustitelnou a funkční hru, která se v dalších krocích zdokonaluje. Všechny hry, které naleznete v archivu k tomuto tutoriálu, mohou být v Game Makeru otevřeny. Stejně tak tam naleznete i všechny obrázky a zvuky.

Herní nápad

Než začneme tvořit samotnou hru, musíme přijít s nápadem, jak by hra měla vypadat. Toto je ten nejdůležitější (a do jisté míry nejtěžší) krok v návrhu hry. Dobrá hra je vzrušující, překvapivá a návyková. Měla by mít jasné cíle pro hráče a ovládání by mělo být intuitivní.

Hra, kterou si zde vytvoříme, bude bludišťovka. Každá místnost bude obsahovat bludiště. Aby hráč unikl z bludiště, musí vyřešit hádanky a vyhýbat se příšerám. Můžeme vytvořit mnoho hádanek: kamenné bloky musí být posunuty do děr, části místnosti mohou být odpáleny bombami atd. Je velmi důležité neumístit všechny tyto věci hned do první místnosti. Nové předměty a příšery by se měly objevovat pozvolna, aby byla zůstala zajímavá.

Takže hlavní objekt v místnosti je postava ovládaná hráčem. Jsou zde zdi (možná více různých typů, aby bludiště vypadalo lépe). Také jsou zde diamanty k sesbírání. Jsou zde předměty, které leží na zemi a něco udělají, když se seberou nebo když se jich hráč dotkne. Jedním předmětem bude východ z místnosti. A jsou zde příšery, které se hýbou sami od sebe. Ale pojďme na to postupně.

Jednoduchý začátek

Zezačátku zapomeneme na diamanty. Vytvoříme hru, ve které se hráč jednoduše musí dostat k východu. Ve hře jsou 3 základní věci: hráč, zeď a východ. Pro každou budeme potřebovat sprite a objekt. První takovou jednoduchou hru naleznete ke stažení na konci článku, je to soubor maze1.gmk. Prosím, otevřete si jí a projeďte si jí.

Objekty

Nejprve si vytvoříme objekty. Pro každý ze 3 objektů použijeme jednoduchý sprite 32x32:

Sprity pro bludišťovou hru

Vytvořte tyto sprity obvyklým způsobem a pojmenujte je spr_person (postava), spr_wall (zeď) a spr_goal (východ).

Dále vytvoříme 3 objekty. Začneme objektem zeď. Dáme mu sprite spr_wall jako obrázek, objmenujeme ho obj_wall a uděláme ho pevným zaškrtnutím políčka s nápisem Solid. To zajistí, že ostatní objekty (konkrétně postava) přes zeď neprojdou. Objekt zeď nebude dělat nic jiného a proto zde nemusíme definovat žádné události.

Nyní vytvoříme cílový objekt. To je objekt, kterého má hráč dosáhnout. Objekt nebude solid. Rozhodli jsme se mu dát obrázek cílové vlajky. Díky tomu hráč ví, že se k němu má dostat. Jakmile s ní postava koliduje, potřebujeme se přemístit do další místnosti. Proto dáme tuto akci do této události kolize (najdeme ji v záložce main1). To má jednu nevýhodu. Způsobí to chybu, když hráč dokončí poslední místnost. Takže musíme ještě zapracovat. Nejdříve zkontrolujeme, zda je zde nějaká další místnost. Pokud ano, přesuneme se tam. Jinak hru restartujeme. Takže událost vypadá takto:

Kolize východu s postavou

Samozřejmě v kompletní hře potom uděláme něco lepšího, když hráč dokončí poslední místnost. Ukážeme mu nějaký hezký obrázek nebo mu dáme pozici v seznamu nejlepších hráčů. Nad tím se zamyslíme později.

Nakonec budeme potřebovat vytvořit postavu, která bude ovládaná hráčem. Tady je potřeba více práce. Musí reagovat na vstup od uživatele a neměla by kolidovat se zdí. Pro pohyb použijeme kurzorové klávesy (je to pro hráče přirozené a jednoduché). Postavu můžeme rozpohybovat různými způsoby. Nejjednodušší je posunout hráče o jednu buňku v daném směru, když hráč stiskne šipku. Další možnost, kterou použijeme my, je pohybovat s postavou v daném směru tak dlouho, dokud je klávesa stisknuta. Možný způsob je také nechat hráče pohybovat, dokud není zmáčknutá další klávesa (jako v PacManovi).

Potřebujeme akce pro všechny kurzorové klávesy. Akce jsou poněkud triviální. Prostě nastaví správný směr pohybu. (Jako rychlost použijeme 4.) Když hráč hlávesu pustí, použijeme pro zastavení postavy událost <no key>. Tady zastavíme pohyb. Je tu jedna komplikace. Opravdu chceme, aby se postava zarovnávala s buňkami mřížky, která tvoří bludiště. Jinak bude pohyb obtížný. Např. byste museli zastavit na přesném místě, abyste mohli vstoupit do úzké chodby. To můžeme být vyřešeno následujícím způsobem. V záložce control je akce ke zkontrolování, zda je instance objektu zarovnána s mřížkou. Jenom v tomto případě se spustí další akce. Přidáme ji do každé události kurzorových šipek a nastavíme parametry na 32 protože je to velikost mřížky našeho bludiště:

Jistě také potřebujeme pohyb zastavit, když narazíme na zeď. V události kolize se zdí u objektu postava dáme akci, která zastaví pohyb. Musíme si zde dávat pozor na jednu věc. Pokud sprite vaší postavy kompletně nevyplňuje buňku, což je normálně běžné, může se stát, že když postava koliduje se zdí, není s mřižkou zarovnána. (Abychom byli přesní, stane se to v případě, že je kolem spritu okraj větší velikosti, než je rychlost.) V tomto případě se postava zasekne, protože nebude reagovat na klávesy (protože není zarovnána s mřížkou) ale také se nebude pohybovat dále, protože je před ní zeď. Řešením je udělat sprite větší nebo vypnout ve sprite preceise collision checking (precizní kontrolu kolize) a nastavit bounding box na fullimage.

Tvoříme místnosti

To bylo vše, co jsme museli udělat v akcích. Vytvořme si nyní nějaké místnosti. Vytvořte jednu nebo 2 místnosti, které vypadají jako bludiště. Do každé místnosti umístěte východ a postavu na startovní pozici.

HOTOVO
A to je vše. Hra je připravená. Zahrajte si ji a např. změňte rychlost postavy v její události create, vytvořte více levelů, změňte obrázky atd.


 

Stáhnout

Staženo 390x (12.61 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 (2 hlasů) :
55555


 



 

 

Komentáře

Avatar
xxGSxx
Člen
Avatar
xxGSxx:

pekne

 
Odpovědět 7.9.2012 20:21
Avatar
Cheesurr
Člen
Avatar
Cheesurr:

Prosím vás jak udělat zoom na objekt hrac?
Dopředu díky za odpověď.

 
Odpovědět 15.12.2012 12:23
Avatar
TomBen
Redaktor
Avatar
Odpovídá na Cheesurr
TomBen:

Nejsnazší je zapnout Views u místnosti a nastavit
sledování hráčova objektu.

Odpovědět 15.12.2012 12:36
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
Cheesurr
Člen
Avatar
Odpovídá na TomBen
Cheesurr:

Toto jsem udělal ale vůbec to objekt nezvětšilo :(
Ale přesto dík..

 
Odpovědět 31.1.2013 20:01
Avatar
TomBen
Redaktor
Avatar
Odpovídá na Cheesurr
TomBen:

U views lze nastavit jaký výřez z roomu se zobrazí v jak velkém okně
na obrazovce. Takže když se dají správné hodnoty, je objekt pěkně velký.
Pokud potřebuješ zoom plynulý, musíš tyhle hodnoty plynule měnit,
to je vše.

Odpovědět 31.1.2013 22:38
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.
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 5 zpráv z 5.