13
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

Modul 1 - Kodu Game Lab

Embed Size (px)

Citation preview

Page 1: 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

Page 2: Modul 1 - Kodu Game Lab

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.

Page 3: Modul 1 - Kodu Game Lab

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

Page 4: Modul 1 - Kodu Game Lab

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

Page 5: Modul 1 - Kodu Game Lab

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.

Page 6: Modul 1 - Kodu Game Lab

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.

Page 7: Modul 1 - Kodu Game Lab

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.

Page 8: Modul 1 - Kodu Game Lab

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

Page 9: Modul 1 - Kodu Game Lab

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.

Page 10: Modul 1 - Kodu Game Lab

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í.

Page 11: Modul 1 - Kodu Game Lab

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í

Editor hry

Spuštěná hra

Page 12: Modul 1 - Kodu Game Lab

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

Page 13: Modul 1 - Kodu Game Lab

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