Zde

Transkript

Zde
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

Podobné dokumenty

Modul 1 - Kodu Game Lab

Modul 1 - Kodu Game Lab zda je už časomíra na nule. Budeme používat bloky Score, Compare a číselné hodnoty. Jako výkonnou část programu budeme mít dva řádky, které nám vyhodnotí, zda jsme vítězi anebo poražení, takže potř...

Více

Příloha č. 1 Příkladový popis přestupků při udělení ŽK.

Příloha č. 1 Příkladový popis přestupků při udělení ŽK. síly, brutality, úmyslně, násilně nebo se záměrem ho zranit. Jedná se mimo jiné i o skluz, při němž hráč ohrozí zdraví nebo bezpečnost soupeře. 1. Surová hra – úmyslné (násilné) podražení soupeře z...

Více

Zlo jako ochranný jed

Zlo jako ochranný jed stejné obranné mechanismy - a z hezké a mladé dámy se stávala saň, chrlící šípy jedu na své okolí. Nikdo nedovedl pochopit, jak je to možné, že jinak milá, úslužná, starající se žena může tak najed...

Více

Sebeevaluační nástroje

Sebeevaluační nástroje Každý člověk v průběhu svého života získá mnoho „kompetencí“ mimo školní (formální) vzdělávání v procesu tzv. celoživotního učení. Klíčové kompetence představují souhrn vědomostí, dovedností, schop...

Více

Hana Perglerová: Skupinová systemika a dynamika

Hana Perglerová: Skupinová systemika a dynamika Je mi ctí předat vám tato skromná skripta o skupinových procesech. V době, kdy na Západě existuje mnoho knih, probíhá mnoho seminářů, existují školy s již mnohaletými zkušenostmi, u nás je vše v pl...

Více

8. KOLO SOKOL KOLOVRATY FK METEOR PRAHA VIII B neděle

8. KOLO SOKOL KOLOVRATY FK METEOR PRAHA VIII B neděle Určitě jsme počítali s tím, že přebor bude rychlejší a taky důraznější. Na hřišti se nám to potvrdilo. A taky jsme na vlastní kůži poznali, že se tady trestají individuální chyby daleko víc než v I...

Více