Modul 1 - Kodu Game Lab

Transkript

Modul 1 - Kodu Game Lab
Programujeme v Kodu
Modul 1 – seznámení s Kodu a tvorba první hry
Instalace programu – Program Kodu stáhneme z webové stránky, po stažení instalačního balíčku
spustíme instalaci. Instalace je rychlá a jednoduchá. V případě, že počítač danou část
neobsahuje, nemusíme se strachovat, protože Kodu je zvládne doinstalovat (nejspíš však bude
potřeba náš souhlas s instalací). Takže instalaci máme hotovou a můžeme se vrhnout na tvorbu
základních her.
Ukázka Kodu a vyzkoušení hry
Pro první modul jsem připravil hru, která by se mohla nazvat “Soutěž v pojídání jablíček”.
Cílem hry je nasbírat co nejvíce jablíček ve stanoveném čase 21O sekund (3,5 minuty – ideální na
vyzkušení). Pokud hráč má nejvíce bodů, hru vyhrává a může se posunout do dalšího levelu (tato
hra může sloužit jako program s vice minihrami – bude se zde ukládat postup učení žáka).
Jak hra vypadá
Hra bude mít podobu bazénku, ve kterém bude hráč hrát proti počítači. Hra bude tvořena 3
typy podloží



Vnější – Základní povrch – pokud zde spadne jablko, tak vybuchne
Prostřední – Okraj a stěny arény – jablko se odrazí a spadne do arény
Vnitřní – Dno arény – základní hrací plocha
Jak hru vytvořit
Terénní úpravy (volitelné, doporučuji až doma, pro samotný běh ne zas tak důležité)
Terénní úpravy nám řeší především technický problém s jablíček, které v několika případech
mohou skončit I mimo hrací plochu. Jelikož je těchto jablíček minimum, nemusíme se obávat, že by nám
to požitek ze hry nějak kazilo, jen se může občas stát, že se daný bot (NPC hráč) zasekne.
Jak tedy vytvořit tuto arénu. Nejprve vytvoříme velkou plochu jednoho typu, tato plocha musí
být větší, než bude hrací plocha – aréna. Uprostřed vytvoříme druhým typem další plochu, která bude
dělat stěny arény, a uvnitř této plochy vytvoříme o pixel menší hrací plochu, celé toto barevné seskupení
vytáhneme prvkem na tvorbu kopců, který se nachází vedle ikony Cesta
Dále musíme vytvořit arénu, tedy snížit celou vnitřní část dolů Musíme si dát pozor, abychom nesnížili i
stěny arény.
Tímto je základní hrací aréna. Vzhledem k časové náročnosti doporučuji jen základní verzi -> pouze hrací
arén a tuto vychytávku, ať si děti zkusí sami doma.
Základy práce s KODU



Používají se obě tlačítka myši
Kolečkem se přibližuje/oddaluje
ESC - přepíná mezi režimem hraní a upravování
Úprava terénu


Podržení levého tlačítka + tah - Posun po mapě
Podržení pravého tlačítka + tah - otáčení mapou




Kliknutí levým přidává do označené oblasti terén
Kliknutí pravým ho odebírá
Pomocí levé a pravé šipky se mění velikost označené plochy
Kliknutím do levé horní části ikony rozevře nabídku povrchů

Kliknutím do pravé horní části ikony rozevře nabídku možností generování povrchu
První dvě možnosti generují čtverec/kruh. Další dvě označují oblast tahem.
Vyhlazení povrchu
Zubatý terén
Tvorba arény (základní hrací plocha) a postav
Nám pro školící potřeby postačí jednoduchá plocha s pár NPC a hráčem – postup se pak opakuje.
Na této hrací ploše vytvoříme boty (NPC hráči). Osobně doporučuji motorky a také, aby hráč byl stejný
jako NPC hráči. NPC hráče přidáme pomocí tlačítka Objekty, kde klikneme na místo, kam chceme NPC
vytvořit a vybereme motorku.
Vytvoříme dvě motorky - hráč a NPC. Doporučuji hráče jinak obarvit. Provedeme to tak, že myší
najedeme na objekt a šipkami doprava a doleva měníme barvy. Na výběr máme z palety barev, která je
vidět v horní části obrazovky.
Dalším vytvořeným prvkem bude světlo, které bude generovat jablíčka a samotné jablíčko. Můžeme
generovat jablíčko přímo jako takové, ale my si vytvoříme klonovatelné jablíčko z důvodu použití kódu,
který ponese a který se bude dále hodit, především při vytvořené aréně.
Světlo najdeme v sekci Bots 2 a jablíčko pak ve výchozím zobrazení. Umístíme prvky na hrací plochu.
Objekty můžeme klidně nechat v tomto rozložení, pokud žák chce, může si je pak klidně přesunout.
Naprogramování postav
Nyní si naprogramujeme jednotlivé postavy. Začneme s hráčem, tedy v našem případě černou
motorkou. Klikneme pravým tlačítkem na tuto motorku a vybereme možnost naprogramovat.
Tímto jsme nastavili podmínku, tedy podnět, na který budeme reagovat. Reakcí zde bude pohyb
motorky, která na daný vstup bude reagovat pohybem. Nastavíme to pomocí bloku Move, který najdeme
v hlavní nabídce části programu Do.
Tímto blokem nastavíte, že se bude objekt pohybovat podle vstupu -> při stisku písmena D pojede objekt
vpravo, apod. Dále nastavíme objekt tak, že při srážce s jablkem, jablko sní a zároveň připočte bod černé
barvy. Pokud chceme vytvářet více řádků, které odkazují na jeden řádek, vytvoříme jej tak, že řádek pod
tímto hlavním řádkem odsuneme -> chytíme jej a posuneme vpravo. POZOR: na tomhle řádku musíme
nechat volnou podmínku (when). Pokud byste zde vložili podmínku, program by se zachoval tak, že by
provedl kód na odsunutém řádku pouze v případě, že by byly obě podmínky splněny. Tímto jsou pohyb a
základní funkce (pojídání) připraveny na použití a lze s nimi už ovládat hru.
Obdobný kód bude u NPC hráče. Jedinou změnou zde bude pohybová část, která se nahradí za See a
Move toward. Skóre zde má stejnou barvu, ale místo přičítání zde odčítáme. Důvod těchto změn si
ukážeme na konci, kde budeme hru vyhodnocovat.
Dále nastavíme samotné jablíčko. Jablíčko musíme přepnout do režimu klonovatelnosti. Tuto možnost
najdeme v nastavení objektu.
Kliknutím na vypínač tuto funkci spustíme. Jablíčko je poté zelené a hráči jej ve spuštěné hře neuvidí.
Editor hry
Spuštěná hra
Tímto je jablíčko připravené na klonování, které se bude dělat pomocí světla. Takže naprogramujeme
světlo
Světlo ponese kód o tvorbě jablíček, náhodném pohybu, odčítání času a nastavení počátečního času.
Pohyb: Je to činnost, která nemá podmínku, je tedy bez části Když (When). V části Do, bude Move a
Wander, tedy náhodný pohyb, který není nijak omezen nějakou podmínkou, nějakým podmětem.
Tvorba jablíček: Tvorba jablíček bude omezena podmínkou, která bude říkat, že se jablíčka budou
generovat jednou za půl sekundy. Tento interval lze jednoduše změnit. Akcí tohoto kódu bude vytvoření
jablíčka. Pro interval použijeme Timer a generátor jablíček najdeme mezi Actions, Create a creatables a
zde pak vybereme naše jablíčko
Nastavení času: Nastavení času je další bezpodmínkový řádek, který se provede pouze jednou. Nastavení
se provede pomocí Set score a navolením dané hodnoty. Argumentem, který zde bude použit, bude
Once, který nám bude říkat, že se kód provede pouze jednou. Set score najdeme v sekci Game.
Odčítání času: Pomocí Timer budeme každou sekundou odčítat z bílého skóre jeden bod. Tímto jsme
nastavili časový limit hry.
Jak je vidět, pokud chceme navolit jiné hodnoty, než nám program nabízí, můžeme je naskládat do řádku
za sebou, čímž je sečteme a získáme tak cílovou hodnotu.
Pokud hru nyní spustíme, získáme základ naší hry. NPC hraje proti hráči a předhánějí se v tom, kdo
nasbírá více jablíček. Ještě nám však chybí ukončení hry a vyhodnocení.
Ukončení a vyhodnocení hry (pouze pro dva hráče, pro více hráčů příliš složité – žák to
nezvládne)
Ukončení hry se provede pomocí porovnání, které bude obsahovat světlo, aby bylo vše u sebe a
žák nemusel skákat z jednoho objektu na druhý. Nejdříve tedy nastavíme ukončení hry, ukončení
časomíry. Ukončení časomíry je vyvoláno podmínkou, tedy v bloku When (když) musíme zkontrolovat,
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řebujeme dané dva řádky odsunout a udělat z nich podřádky pro hlavní podmínku.
Vyhodnocení hry uděláme pomocí rozdílu bodů. Jak už při zkoušce poznáte, skóre se snižuje a
zvyšuje podle toho, kdo sní jablíčko. Tímto obejdeme veškeré problémy, které jsou spojeny
s porovnáváním hodnot. Pokud žák chce i složitější variantu, která bude řešit více hráčů o více různých
skóre, bude si muset na ni počkat až do třetího modulu, kde se pokusím tento problém popsat.
Porovnání samotné se provede tak, že v prvním odsunutém řádku se zeptáme, zda je skóre menší nebo
rovno nule. Pokud je to pravda, tak hra skončí neúspěchem. Pokud je však skóre vyšší jak nula, hra končí
pro hráče úspěchem. Toto tedy bude další odsunutý řádek kódu.
Nyní hru spustíme a vyzkoušíme. Zjistíme však, že hra nefunguje tak, jak má nebo jak by měla. Je
to způsobeno tím, že skóre se nastaví později, než je hra vyhodnocena. Potřebujeme tedy nějaké časové
zpoždění. Tohoto docílíme jednoduchým odsunutím našeho hlavního řádku a přiřadíme jej k časovači,
který se nachází nad ním.
Tím je tedy hra naprogramována a pro tento modul hotova.
Pro kreativní žáky
 Vytvořit arénu a nastavit, že pokud jablko skonči na vnějším povrchu, ať vybuchne (nápověda ->
Combat, boom a pro povrch On land a tento kód se bude nacházet na jablíčku)
 Hrát proti více NPC
 Nastavit generování více jablíček najednou
 Nastavit možnost ovládání WASD a zároveň pomocí šipek
 Anebo si něco vymyslete sami 
Doufám, že je tutoriál srozumitelný a bude jednoduché podle něj děti vést.
V případě dotazů piště na email [email protected]
Jan Rajnoha, Martin Dybal

Podobné dokumenty

Zde

Zde 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ži...

Více

Tiskárny - projekt A

Tiskárny - projekt A Tisková hlava připomína kopretinu se znakem umístěným na konci jednotlivých okvětních lístků.

Více

HERNÍ ENGINE PRO TVORBU DIDAKTICKÝCH HER VE FLASHI

HERNÍ ENGINE PRO TVORBU DIDAKTICKÝCH HER VE FLASHI načítání lze mimojiné určit, jak dobře je místnost zvládnutá. Přechody mezi místnostmi ošetřuje engine pomocí preloaderu, který slouží jako zpětná vazba pro hráče, že místnost se načítá. Engine umo...

Více

Katalog The TRIADS - Nový Test Server Triads!

Katalog The TRIADS - Nový Test Server Triads! tuning sraz, svatba apod.)! 13) Pokud odcházíte od počítače, používejte při odchodu na krátkou dobu příkaz /afk, při odchodu na delší dobu vypněte hru. Nikdy nevcházejte do windowsu - anticheat vás...

Více