Ahoj, již dříve jsem zmínil GameMaker jako vhodný nástroj pro naučení se základů programování, dnes si ukážeme jak vytvořit vaši první hru.
Začínáme – vytvoření projektu, objektů, uspořádání místnosti.
Začneme vytvořením nového projektu v GameMakeru, pokud máte GameMaker Studio (odkaz je v předchozím příspěvku o GM), vytvoříte nový projekt pod záložkou New, zadáte kam chcete projekt uložit a jméno – viz obrázek.
Otevře se nám náš projekt v okně, ve kterém budeme poté pracovat.
Budeme potřebovat tři obrázky – hráče, zemi a mince. Pokud je nemáte, můžete si stáhnout ty, které jsem vytvořil pro tento článek zde – gmproject1.
Vytvoříme tři sprites – obrázky. Výše máte zakroužkovanou ikonku pomocí které vytvoříte obrázek, můžete jej taky vytvořit kliknutím pravým tlačítkem na složku Sprites – Create sprite. Po vytvoření vám vyskočí tabulka, do které zadáte název a vyberete obrázek, který jste si stáhli – nebo vytvořili pomocí Load Sprite. Můžete jej také vytvořit přímo v GM. Obrázky pojmenujte postava, zeme, mince – není to nutnost ale pokud budete chtít pokračovat v následujících dílech, bude to lepší.
Další krok je vytvořit čtyři objekty – hráče, zemi, body a počítač. Na obrázku máte zvýrazněnou ikonu kuličky, pomocí které se objekt vytvoří – můžeme jej taktéž vytvořit pravým klikem na složku objects – create object. Podle jména objektu nastavíme taky obrázky, které jsme před tím vytvořili – kromě počítače, ten bude bez obrázku.
Obrázek přiřadíme v kolonce sprites pomocí ikonky zvýrazněné na obrázku. Pojmenujte objekty stejně jako na obrázku. U objektu pevna_zeme nesmíte zapomenout zaškrtnout SOLID – aneb, že je země pevný objekt a hráč by jí neměl propadnout.
Nyní vytvoříme místnost – prostředí ve které se bude naše hra odehrávat. Opět ikonka je zvýrazněna nahoře a lze místnost vytvořit také pravým tlačítkem na složku rooms. Do místnosti naskládáte objekty, podle toho jak se vám to líbí, jen pamatujte na to, že hráč by měl být kousek nad zemí – kvůli gravitaci. Objekty vybíráte kliknutím na zakroužkovaný prostor. NEZAPOMEŇTE někam umístit objekt počítač! Ve hře nepůjde vidět.
Ještě ukázka nastavení pozadí, můžete nastavit jaká barva se vám bude líbit.
Spouštění hry
Nyní se můžeme podívat jak bude hra vypadat – kliknutím na zelenou šipku. Samozřejmě se ještě nic nebude pohybovat – to ale brzy napravíme.
Herní logika – ovládání hráče,…
Otevřeme si objekt Hrac…
Nyní vytvoříme čtyři „eventy“ jak vidíte na obrázku – Step, <no key>, <Left> a <Right>. (Můžete nastavit „depth“ na -1, aby byl hráč vždy „nahoře“)
Do eventu LEFT přetáhneme z nabídky ikonku „Speed Horizontal“ a přiřadíme mu hodnotu -5. To samé uděláme v eventu Right ale hodnotu nastavíme 5 (ne mínus).
Do eventu No Key vložíme ikonku „Execute a piece of code“ ze záložky „control“ na pravé straně.
Kus kódu máte zde:
if gravity == 0
{
hspeed=0
}
Znamená to „Pokud je gravitace 0 (tzn. dotýkáme se země), a není stisknuta žádná klávesa, nastav horizontální rychlost na 0″.
Vytvořte si podobnou strukturu – všechny ikonky jsou zvýrazněny, jen gravitace je v záložce „move“ na pravé straně – to doufám najdete.
- Rozklikněte ikonku „If a position is collision free“ a do „X:“ nastavte „x“, do „Y:“ nastavte „y+4″ a potvrďte OK.
- U obou ikonek Set the gravity nastavte „direction“ na 270 a „gravity“ na 1
- Do ikonky „If there is a collision at a position“ nastavte „X:“ na „x“, „Y:“ na „y-30″ a potvrďte.
- Do „Execute a piece of code“ vepište:
if keyboard_check(vk_up) {
vspeed=-13
}
else
{
gravity=0
vspeed=0
}
To znamená – pokud je stisknutá klávesa nahoru – vertikální rychlost je – 13, pokud ne, gravitace je 0 a vertikální rychlost taktéž – tohle je mechanismus skákání.
If a position is collision free – kontroluje, zda je pod hráčem „volno“ a nebo je tam je nějaký objekt, pokud je tam volno nastaví gravitaci, pokud objekt, povolí skákání – tzn. výše zmíněný kód.
If there is a collision at a position – kontroluje zda je nad hráčem nějaký objekt – pokud ano zapne gravitaci – tím jej objekt jakoby „odrazí“ zpět.
Otevřete ještě vytvořený obrázek hráče, a ve zvýrazněném okýnku klikněte doprostřed aby byl hráč „vycentrovaný“ (nebo použijte tlačítko center u okýnka origin vlevo dole).
Nyní chceme, aby hráč mohl sbírat body – otevřeme objekt „bod“ a vytvoříme event Collision s objektem Hrac. Do eventu přetáhneme ikonku set score, hodnotu nastavíme na 1 a zaškrtneme relative – to zajistí, že bude skóre přibývat. Poté ještě přidáme ikonku „Destroy the instance“ – ta se nachází v záložce main1 – ta minci zlikviduje.
A poslední krok – otevřeme objekt „Počítač“ – vytvoříme event Draw a vložíme do něj „Draw the value of score“ ikonku. X a Y znamená pozice vykresleného skóre v místnosti (roomu). Můžeme nastavit text před skórem. Stiskneme OK a můžeme hru spustit, pokud jste udělali vše jako je v návodu, mělo by vám jít skákat, sbírat body, chodit.
Kdyby něco nefungovalo, nebojte se použít komentáře. Rád pomůžu.
Stáhněte si celý projekt zde: JmenoProjektu