Programujeme v Kodu Modul 2 – Multiplayer hra na jednom počítači Nejprve námět Když jsem si říkal, jaký bude další námět pro hru, seděl jsem u televize a díval jsem se na fotbalový zápas a v tu chvíli mi to došlo. Fotbal, to by je mohlo zaujmout. Co je vlastně fotbal. Je to plocha s hráči, balónem a dvou branek, v nichž jsou zalezlí brankáři. To je vše. A jak udělat AI (Artificial intelligence -> umělá inteligence). Celkem jednoduché. Necháme brankáře, ať se pohybují jen v okolí branky na určitém povrchu, skáčou po balónech a odkopávají je. Hráči půjdou za balónem a budou se jej snažit odkopnout. Na vše bude dohlížet rozhodčí, který bude vytvářet nové balóny, které při vniknutí do branky vybuchnou. Myslím, že to zvládneme. Tento tutoriál už nebude mít tolik obrázků, protože věřím, že po první hodině jste již všichni zkušení a víte, kde co hledat. Pojďme na věc
Trenére, nemáme hráče a ani stadion!!! Stavíme stadion, tedy spíše malé hřiště Hřiště pro naše ligová utkání bude poněkud jednodušší. Bude tvořeno z trávy a branek v podobě zdi, která bude obarvena určitou barvou -> barvou týmu. Nezapomeňte udělat hřiště v poměru, tedy 3:4 (90x12O m)
Vítejte na stadionu Orné Pole!!!
Stadion je v poměru 3:4, někde uprostřed je udělána půlící čára, jsou vyznačena brankoviště a branky v barvách týmů. Vše je od oka, takže se mohou najít nepřesnosti.
Nástup, jde se hrát „Vítejte na dnešním ligovém zápase. Domácí tým FC Černý buk přivítá na stadionu Orné Pole tým FC Bukvice. Týmy už nastupují na hrací plochu. A jde se hrát. “zní z ampliónu na tribunách. Naskládáme hráče. Moje rozložení je 5 + brankář, což je na danou plochu akorát.
Ještě nám chybí rozhodčí a balón. Balón bude createable jednotka, takže se bude tvořit podle osobní potřeby.
Vše je tedy připraveno na zápas. Nyní se tedy vrhneme na samotné naprogramování
Tak hraj něco!!! „No vy si snad ze mě děláte srandu?!?! Proč si ho nechal utéct, pohni se trochu. Mám tam vyběhnout snad sám?!?!“křičí trenér na lavičce. Je super, když máte tým, vlastní stadion a možnost tomu šéfovat, ale co je to platné, když to nic neumí. Takže se podíváme na zoubek kódu. Začneme rozhodčím
Žlutá za napadení Rozhodčí má v naší hře symbolizovat někoho, kdo začne hru. Hra začne vhozením míče do pole a končí vybuchnutím v bráně. Takže základ je jasný, Vidíš míč, čekej, ale pokud ne, vytvoř jej. To je vše co náš rozhodčí bude dělat. Takže pomocí bloků See (použijeme argumenty Not a Ball) a Actions(použijeme argumenty Create, kde vybereme náš míč) vytvoříme jeden řádek kódu, který už bude konečný.
Nekopejte do mě!!! Dalším krátkým kódem bude kód pro míč. Míč má jedinou funkci -> Přičte nebo odečte bod podle toho, kdo míč do brány umístil a zničí sám sebe (Použijeme Vanish - zmizí). Zde si zopakujeme jedna podmínka – více kódu, takže použijeme odsunutí řádků Podmínka bude ve tvaru: Pokud jsi na povrchu (ten který jste si vybrali) Kód: Tak přičti nebo odečti bod a znič se
Důvod, proč jsem použil odečítání je ten, že při dotyku míče a brány dojde k přičtení dvou bodů. Tímto chybu eliminujeme. Opačnou verzi aplikujeme pro druhou stranu. V kódu není vidět, jaký typ podloží je nastaven. Toto není chyba, tak se neděste
Musím přidat, jinak mi trenér ukáže Nyní si naprogramujeme hráče. Není to zas tak těžké, protože AI je zde v podobě hráče, takže my si jej budeme ovládat. Nastavíme zde dva řádky. Pro pohyb (Keybord -> Move) a pro naražení do míče pomocí bloků Bump (argument[arg] Ball) a Actions a vybereme Launch (arg budou „To“ – určení, co odrazíme, a Low – síla odrazu určité věci. Dále můžeme nastavit na určitý směr -> v případě odkopu)
Pojď, přihraju ti Poslední věc, kterou naprogramujeme, budou hráči. Pro ty, kteří chtějí být aktivnější, mohou vytvořit kód pro jednotlivé hráče pomocí podloží, na kterém se budou pohybovat. My si ukážeme jednodušší variantu, tedy že budeme mít pro všechny hráče stejný (samozřejmě s obměnou pro týmy). Nejprve však, jak to bude fungovat. Na trávě je míč, který když hráč uvidí, poběží za ním. Takže první řádek bychom měli -> pomocí bloků See (arg - míč) a Move (arg - toward) vytvoříme přesun hráče za balónem. Další věc, kterou hráč udělá, když je u míče, je jeho odkopnutí. My použijeme schopnost Push. Kód má strukturu Bump (arg - míč) -> Actions (arg – Lauch, síla a směr – pokud chceme odkop určitým směrem) Tímto je část hracího pole hotova. Samozřejmě se zde žák může vyřádit na různých barvách podloží a vytvářet tak chytřejší AI
Skákej!!! Dále se podíváme na brankáře. Zde je to poněkud jasné. Vidí míč a běží k němu. Když narazí, odkopne jej. Těžší zde však bude zajistit, že musí brankář zůstat na místě, tedy v brankovišti. Toho docílíme pomocí složené podmínky, kdy se ptáme, zda vidí míč a je v brankovišti. Pokud v brankovišti není, vrátí se na výchozí pozici, tedy nějaký bod, který vytvoříme pomocí cesty (Path). Zde doporučuji určit směr odkopu, protože se může stát, že by sám brankář dal vlastní gól. Takže řádky kódu (pro tým modrých bude obdobný)
Detaily k zápasu Tak hráče a stadion máme, ještě však musíme dodělat ty věci okolo -> časomíra, konečné vyhodnocení, přesun mezi naší první hrou a touto (vytvoříme si sled menších miniher). Začněme tedy u časomíry.
Posledních pár sekund Zde doporučuji dát okolo 180 sekund, anebo nějaký x-násobek čísla 90, ať to navozuje pocit herního času. Náš časovač umístíme na rozhodčího, který na vše bude dohlížet. Samotný časovač víme, jak vypadá. Používali jsme jej v prvním modulu -> Bloky Timer a Score pro odpočet a bloky Score a Game pro vytvoření konce hry.
Vyšší liga Pro přesun mezi levely použijeme blok Game. Tímto blokem nahradíme stávající blok pro výhru, kdy za výhru dosadíme přesun. Vybereme level, který chceme jako nástupce a potvrdíme pomocí Attach (Připojit). Hurá do vyšší ligy.
Co navíc? Pro ty zvídavější: pokud chcete hru více hráčů, stačí jen nastavit na dané postavičce Move, tedy odeberete veškerý kód pro AI a nahradíte jej již kódem vytvořeným (červený hráč na špičce sestavy). Tím ale je hra vždy jen pro dva. Pokud chcete mezi režimy přepínat, jak je třeba u LEGO her pro PC, musíte nastavit nějakou skrytou hodnotu, která daný problém bude řešit. Toto nastavíte v kódu pomocí Klávesnice (Keyboard), kdy při stisku klávesy, např: C, přidáte ke skrytému skoré 1 bod, a následně jej, třeba klávesou V, odeberete. Do kódu pro dalšího hráče nastavíte složenou podmínku, která bude tyto stavy kontrolovat a bude tak přepínat mezi těmito režimy.
Pro 2. hráče:
Pro 1. Hráče (ovládajícího):
Námět na doplňkovou práci
Schovat bílé skóre a zobrazit místo něj modré a červené. Bodovat se bude tak, že bílé skóre zůstane a navíc se bude přičítat na dané barvy Schovat šedé skóre Udělat kód pro jednotlivé fotbalové posty pomocí změny podloží
Po zápase v kabinách „Hoši, skvělý zápas. Jsem rád, že mohu trénovat právě vás a doufám, že nám to spolu dlouho vydrží.“ Tato hra je poněkud jednodušší. Je zde méně screenshotů postupu, ale věřím, že jste již zkušení uživatelé programu Kodu a nějaká ta menší nejasnost vám nebude dělat problémy. V 1. modulu jsme se s programem seznámili a vytvořili jednoduchou hru. V tomto modulu jsem se snažil ukázat, jak by mohl vypadat jednoduchý multiplayer na jednom počítači. Bohužel, Kodu neumožňuje hru po síti a je tedy tato možnost uživateli odebrána, ale věřím, že i s tímto stylem budete spokojeni. Pokud byste vlastnili Xbox 360, můžete vytvořit hru až pro 4 hráče, což už je slušný základ pro dobře fungující fotbalový tým. Přeji hodně zdaru při práci v Kodu. Pokud byste měli nějaké dotazy, nebojte se obrátit na mne (
[email protected]) Jan Rajnoha