IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Lovíme minotaury (6. část, lov)

... dokončení z minulé lekce

Konečně se dostáváme k samotnému lovu minotaurů.

Připravte číselnou konstantu max. síla zásahu střelou a nastavte ji na 0.2. Tobude maximální úbytek života při zásahu minotaura. Doseznamu minotaurů doplňte proměnnou život minotaura (0 až 1). Proměnnou nastavte na hodnotu 1 ve funkci umístění minotaura, do podmínky testující nalezení vyhovující nové souřadnice.

Zdraví minotaura budeme indikovat tím,že s ubývajícím zdravím bude získávat červenou barvu. Proto vytvořte novou funkci, aktualizace barvy minotaura. Červenou složku barvy minotaura necháme stálena maximu, zatímco modrou a zelenou složku budeme měnit podlehodnoty života. Volání funkce doplňte do funkce umístění minotaura, za inicializaci zdraví minotaura na 1.

Budeme pokračovat ve funkci obsluha střel a výbuchů. Připravte lokální proměnnou účinnost zásahu minotaura. Do obsluhy střel, za podmínku zásahu do zdi, doplňte cyklus test zásahu minotaura. V cyklu budeme procházet seznam minotaurů atestovat, zda střela dosáhla blízkosti minotaura.

Přiblíží-li se střela dostatečně blízko k minotaurovi (zvolili jsme vzdálenost 0.4), bude se jednat o zásah. Vypneme viditelnost střely a zahájíme zobrazení výbuchu. Jednoduše zkopírujte skupinu zahájení výbuchu z obsluhy nárazu střely do zdi. Vygenerujeme účinnost zásahu minotaura jako náhodné číslo od nuly po maximální sílu zásahu. Hodnotu odečteme od života minotaura. Po obsluze případné smrti minotaura musíme znovu vybrat ID střely, kvůli další obsluze střely.

Pokud život minotaura dosáhl nuly, znamená to jeho smrt. Přehrajeme jeho posmrtný výkřik a umístíme minotaura na novou pozici. Tím před hráče mminotaurus zmizí a objeví se nový někde mimo dohled hráče.Pokud ještě ke smrti minotaura nedošlo, zobrazíme novou barvu minotaura. Patrně bude červenější. Pokud byl zásah dostatečně úspěšný, minotaurus zařve bolestí (průměrně každý 4. zásah).

Smrtelný výkřik minotaura přehrajeme tak, že hlasitost ubývá s rostoucí vzdáleností. Navíc budeme měnit náhodně rychlost přehrávání, aby zvuk nezněl stále stejně. Podobně přehrajeme i zvuk při zásahu minotaura, jen použijeme jiný zvuk.

Program vyzkoušejte, zkuste střelbu do minotaurů. Po jejich zásahu by se měly objevovat výbuchy, měli by občas zaskučet bolestí, červenat a po nějaké doběs výkřikem zmizet. Pokud by se nám chtělo dále experimentovat, mohli bychom ještě přidat animaci jejich rozstříknutí při smrti, ale zatím nám to takto stačí.

Náš lov je samozřejmě nespravedlivý. Jaký by to byl boj bez nebezpečí, pokud by minotauři neměli šanci nám něco udělat? Takže ještě musíme zajistit možnost útoku z jejich strany. Budeme k tomu potřebovat konstantu síla kousnutí, kterou nastavítena 0.3. Bude udávat, o kolik ubyde hráči života jedním kousnutím od minotaura. Dále konstantu rychlost obnovení zdraví, nastavte ji na 0.02. Bude znamenat rychlost, s jakou se hráči bude samo vracet zdraví.

Přejděte do funkce obsluha minotaurů. Do cyklu obsluhy doplňte podmínku testující vzdálenost minotaura od hráče a náhodu v závislosti načase. Je-li hráč dostatečně blízko a má-li smůlu, minotaurus kousne. Přehrajeme zvuk kousnutí a snížíme život hráče. Smrt hráče pro účely tutoriálu neřešíme, jenom omezíme aby nepodtekla pod nulu.

Program zkuste. Necháte-li se párkrát kousnout, začnete vidět opravdu rudě.

Hráči necháme zdraví pomalu obnovovat. Obnovu zdraví doplňte do hlavní funkce.

Už nám chybí jen nějaké herní detaily. Například pro zvýšení dojmu z hry chceme, aby se ozývaly náhodné zvuky. Doplníme je do obsluhy minotaurů. V závislosti na náhodě občas přehrajeme zvuk zachrochtání minotaura.

Chceme, aby se zvuky přehrávaly reálně, aby vycházely od skutečných minotaurů, aby se hráč mohl podle zvuků orientovat - hlasitost aby závisela na vzdálenosti a aby byl správně rozlišený i směr zvuku. Rychlost přehrávání zvolíme mírně náhodnou, aby všechny zvuky nezněly stejně. A zvýšit rychlost pohybu minotaurů z 0.1 na 0.4, jinak je hra nudná.

Na závěr zapneme celoobrazovkový režim. Nastavením vzhledu kurzoru myši na předmět vyplněný průhlednou barvou vypneme zobrazení kurzoru, vceloobrazovkovém režimu by nám překážel.

Můžete doplnit ještě zvuk kroků. Přehrávání kroků přidejte do obsluhy pohybu vpřed. Je-listisknuta klávesa vpřed, přehrávejte opakované zvuky kroků. Nezapomeňte vypnout příznak pro přerušení hrajícího zvuku. Před přehrátím zvuku vyberte rozlišovací kód 0 (zjiných zvuků může být kód nastaven náhodně). Není-liklávesa stisknuta, vypněte zvuk, opět s volbou rozlišovacího kódu. Podobně obslužte kroky při chůzi vzad. Můžete použít stejný zvuk, ale zvolte jiný rozlišovací kód a nastavte poloviční rychlost přehrávání kroků.

A můžeme hru důkladně vyzkoušet. Théseus by vám záviděl. Bude-li se vám hra zdát nudná a napadají-li vás tisíce myšlenek jak vše udělat líp, tak to je ten nejlepší okamžik sednout a pustit se do práce. V tom případě tutoriál splnil svůj úkol.


 

Stáhnout

Stažením následujícího souboru souhlasíš s licenčními podmínkami

Staženo 421x (1.25 MB)
Aplikace je včetně zdrojových kódů v jazyce Petr Lite (jsou obsaženy v EXE souboru, který lze v programu přímo otevřít)

 

Všechny články v sekci
3D grafika
Článek pro vás napsal Panda38
Avatar
Uživatelské hodnocení:
2 hlasů
Programátor C++, WinAPI, ASM.
Aktivity