Microsoft MakeCode pro Minecraft: Naučte se JavaScript zdarma a přitom se bavte


Máte rádi Minecraft a chcete se naučit kódovat? Zde je návod, jak může Microsoft MakeCode pro Minecraft učinit učení JavaScriptu zábavou.

JavaScript (JS, ECMAScript, ES) je všestranný programovací jazyk, který poskytuje tisíce vysoce placených pracovních míst po celém světě... takže může být překvapením, že se ho můžete naučit hraním Minecraftu.

Microsoft MakeCode pro Minecraft se snaží přiblížit svět vývoje softwaru komukoli a všem pomocí zábavných bezplatných projektů, které oživí váš kód před vašima očima ve světě bloků.

Co je Microsoft MakeCode?

Microsoft MakeCode je výuková platforma zaměřená na to, aby vzdělávání v informatice bylo zajímavé a dostupné. Je to zdarma a open-source s řadou metod pro učení, budování a hraní.

Pokud jste již Minecraft hráli, možná vás tato možnost zaujme. V této sekci se můžete naučit Python a JavaScript nebo můžete použít editor bloků k práci na programovací logice, aniž byste se museli starat o kód. V tomto článku budeme používat JS.

Tento článek vám představí funkce MakeCode for Minecraft tím, že rozebere původní projekt, Chicken Rain, a představí vám několik vlastních skriptů – první vám umožní přepínat běžná nastavení (jako je počasí nebo čas) a druhý vám umožní můžete vytvořit a hrát vlastní minihru.

Poznámka: Abyste mohli využívat všechny funkce MakeCode pro Minecraft, budete potřebovat účet Minecraft Bedrock Edition (Minecraft pro Windows 10) nebo Minecraft Education Edition.

Nastavení: Code Connection and a New World

Chcete-li svůj kód synchronizovat s klientem Minecraft, stáhněte si a nainstalujte Microsoft Code Connection.

Vyberte si svou edici Minecraftu a poté postupujte podle kroků uvedených na stránce Nastavení Minecraftu pro Windows 10 pro MakeCode a nainstalujte a spusťte Code Connection.

Se spuštěným Code Connection spusťte Minecraft a vytvořte nový svět (Hrát > Světy > Vytvořit nový > Vytvořit nový svět > Vytvořit) s povolenými cheaty. Aktivovat cheaty musíte zapnout, abyste získali přístup ke všem funkcím MakeCode.

Začněte svůj nový svět a zadejte příkaz zobrazený pomocí Code Connection do chatu pro synchronizaci textového editoru a herního klienta.

Nyní, když je Code Connection nastaveno a čeká na vás nový svět, jste připraveni skočit a začít kódovat!

Minecraft MakeCode: Chicken Rain

První dostupný projekt je Chicken Rain. Tento pětikrokový tutoriál vám pomůže seznámit se s uživatelským rozhraním MakeCode (jako je textový editor, nabídka, tlačítko Přehrát a užitečná dokumentace.)

Podíváme se také na základní pohled na „proměnné“ a „funkce“, dva klíčové stavební kameny informatiky. Po dokončení psaní scénáře budete mít také svou vlastní záplavu plovoucích kuřat.

Pokud se zaměřujete na vytváření plnohodnotných modů, nemusí to znít jako mnoho, ale vidět, jak váš kód ožívá, je neuvěřitelný pocit, který mnohé inženýry přivede k životu. Toto je váš první krok!

Před zkopírováním kódu do textového editoru si prohlédněte výzvu. Toto je dobrý příklad, který ukazuje, jak byste měli myslet jako počítačový vědec.

Poznámka: Nerozumíte programátorskému žargonu? Zde je cheat sheet JavaScript.

  1. Nejprve zavoláme funkci objektu pomocí mobs.spawn(). Takto určíme, co chceme, aby počítač dělal. Chceme, aby Minecraft vytvořil dav.
  2. Skvělé, ale jaký druh davu? Zde specifikujeme proměnnou – CHICKEN – která počítači sdělí, který mob chceme vytvořit.
  3. mobs.spawn() má dva parametry: typ mob a pozici. Stále musíme počítači sdělit, kde chceme, aby se dav objevil. Děláme to pomocí pos(0, 10, 0) kde (0, 10, 0) jsou souřadnice XYZ s ohledem na vaši postavu z Minecraftu.
mobs.spawn(CHICKEN, pos(0, 10, 0))

Kliknutím na tlačítko Přehrát spustíte kód. Přepněte zpět na Minecraft a podívejte se nahoru! Pokud vše proběhlo hladce, zplodili jste opeřeného přítele.

Co když chceme více kuřat (a upřímně, kdo ne?) Měli bychom tento kód jen několikrát zkopírovat a vložit a znovu stisknout spustit? No, můžete, ale neměli byste – dobrou mantrou, kterou se musíte naučit na začátku kódování, je „DRY“ (Neopakujte se.) To z vás udělá efektivnějšího vývojáře.

Chcete-li spustit stejný kód více než jednou, používáme smyčku.

Smyčka „for“ spustí kód, který do ní vložíme, po tolik iterací, kolik určíme – v tomto případě 100.

  1. Začněte s for() {}. Složené závorky se používají k definování rozsahu této smyčky – jakýkoli kód uvnitř složených závorek bude spuštěn vícekrát.
  2. Musíme počítači sdělit, kolikrát se má tento kód spustit. V závorce vytvořte proměnnou pomocí let a nastavte tu proměnnou na 0. Poté určíme, kolikrát se má tato smyčka spustit, a to zahrnutím i<100. Nakonec určíme, co se má stát na konci každé iterace – hodnota naší proměnné se zvýší o jednu (i++).
  3. Vložte kód předchozího kroku do složených závorek. Nezapomeňte odsadit, jak je uvedeno.
for (let i=0; i<100; i++) {    mobs.spawn(CHICKEN, pos(0, 10, 0))}

Klikněte na tlačítko Přehrát a přepněte zpět na Minecraft. Kuřecí déšť!

MakeCode pro Minecraft: Více zábavy s JavaScriptem

S prvními řádky JavaScriptu pod opaskem můžete získat přístup k libovolnému množství dalších výukových programů MakeCode, jako je Mega Jump nebo Save the Cake, nebo vytvořit prázdný dokument a nechat proudit svou kreativitu.

Podívejme se na některé vlastní skripty, které nám pomohou pracovat na našich dovednostech JS.

Ovládání času a dalších nastavení

Spát příliš pozdě a chybí vám péče o vaši farmu? Chcete nastavit hodiny zpět? A proč pořád prší? Nebojte se, programování na záchranu!

player.onItemInteracted(CLOCK, function() {    if(gameplay.isDaylightTime(DAY)){        gameplay.timeSet(DayTime.Night)    } else {        gameplay.timeSet(DayTime.Day)    }})

Tento blok kódu představuje příkaz if else, základní logiku počítačové vědy.

  1. Zavolejte funkci objektu „player“, která se spustí, když interagujete s určitou položkou, player.onItemInteracted(). Zadejte položku, kterou chcete použít, v tomto případě HODINY, a nastavte funkci, která se spustí při interakci s položkou function() {}.
  2. Zahrňte příkaz if else if() {} else {} , který bude fungovat jako vypínač. Vyplňte parametry if(gameplay.isDayLightTime(Day)) a zjistěte, kolik je v Minecraftu hodin.
  3. Zahrňte kód, který chcete spustit do if složených závorek {gameplay.timeSet(DayTime.Night)}. Váš kód zatím kontroluje, zda je Den, a pokud ano, nastaví jej na Noc.
  4. Napište kód do sekce jinak {gameplay.timeSet(Daytime.Day)}. Řekněme, že pokud není splněno vaše prohlášení (momentálně je ve hře Noc) – spustí se váš jiný kód.

Klikněte na tlačítko Přehrát, poté přejděte na Minecraft a zadejte do chatu /gamemode 1; otevřete svůj inventář a spawnujte se v hodinách. Několikrát klikněte pravým tlačítkem s hodinami v ruce – pokud jste kód napsali správně, váš svět se bude přepínat mezi Sluncem a Měsícem.

Možnosti tohoto kousku logiky jsou nekonečné. Pomocí nabídky nalevo můžete zobrazit nejrůznější příkazy a proměnné, se kterými si můžete hrát. Ušpinit si ruce; zjistit, co funguje a co ne (a co by zdánlivě mělo fungovat, ale stále nefunguje.) To znamená prozkoumat svět informatiky.

MakeCode pro minihru Minecraft: Bat Hunter

player.onChat("batHunt", function () {    gameplay.setGameMode(    SURVIVAL,    mobs.target(LOCAL_PLAYER)    )    gameplay.setDifficulty(NORMAL)    mobs.give(    mobs.target(NEAREST_PLAYER),    BOW,    1    )    mobs.give(    mobs.target(NEAREST_PLAYER),    ARROW,    64    )    for (let i=0; i<32; i++) {        mobs.spawn(BAT, randpos(        pos(-5, 0, -8),        pos(5, 0, 5)        ))    }})
let points = 0
let addPoints = function () {    points += 1    player.say(`2 Points! Total: ${points}`)}let clearPoints = function () {    points = 0    player.say("Points Cleared.")}
mobs.onMobKilled(BAT, addPoints)player.onChat("clearPoints", clearPoints)

Může to vypadat jako velký skok oproti předchozím projektům, ale nebojte se; už znáte většinu logiky této minihry. Stačí mít otevřenou mysl a vyplnit prázdná místa.

  1. Jako nastavení voláme funkci player.onChat(). Tím se váš herní režim nastaví na Survival a obtížnost vaší hry na Normální, pak vám poskytne luk a 64 šípů.
  2. Dále jsme nastavili smyčku for s voláním funkce mobs.spawn(), aby se vytvořilo 32 netopýrů. Pomocí randpos()  specifikujeme rozsah lokalit, kde se mohou netopýři rozmnožovat. To způsobí, že se kolem vás budou nepředvídatelně rojit.
  3. Nyní nastavíme algoritmus sledování bodů. Inicializujte proměnnou points s hodnotou 0. Nyní vytvořte funkci, která sleduje 2 body za sundání netopýra. Ke kombinaci textu řetězce ("2 body!" Celkem: ) s hodnotou proměnné ($ {body}) používáme šablonový literál.
  4. Vytvořte podobnou funkci jako v kroku 3 a vymažte celkový počet bodů.
  5. Nyní vytvořte instance, ve kterých by se tyto funkce měly spouštět. Chceme, aby se addPoints spustily, když je netopýr zabit, proto používáme mobs.onMobKilled(BAT, addPoints). Chceme, aby se clearPoints spustily, když v chatu napíšete „clearPoints“.

Klikněte na Hrát a získejte co nejvíce bodů! Doporučuji hrát uvnitř velké místnosti (možná házet nějaké překážky, aby se netopýři dostali za záda), protože hraní venku příliš usnadňuje netopýrům odlétat do dálky.

Stejně jako ostatní skripty v tomto tutoriálu a všechny ostatní kódy, se kterými se na své cestě za počítačovou vědou setkáte, je tento kód jednoduše základem pro přidání vlastního vkusu. Můžete implementovat časovač pro přidání prvků naléhavosti nebo výsledkovou tabulku pro sledování vašich předchozích her; to, co postavíte, je omezeno pouze vaší vlastní kreativitou.

MakeCode pro Minecraft Agent

Agent je šikovné NPC, které vám umožní vyzkoušet multiplayerové interakce ve hře pro jednoho hráče, automatizovat úkoly a mnoho dalšího.

MakeCode poskytuje řízené výukové programy pro Agent Checkers, navigaci v bludišti s vaším agentem, a má také nepřeberné množství zdrojových kódů souvisejících s agenty, které můžete upravovat, jak chcete.

Ponořte se hlouběji do JavaScriptu

Doufáme, že MakeCode pro Minecraft vzbudil vaše zájmy o kódování! Stojíme za jejím posláním vytvořit novou generaci programátorů.

Zatímco jste procvičovali některé zásadní metody JavaScriptu, v tomto článku jsme pouze zkoumali špičku ledovce JavaScriptu. Pokud se chcete naučit JavaScript, aby byl připraven na práci, měli byste se naučit, jak JS interaguje s dalšími webovými technologiemi, jako jsou HTML a CSS. Bylo by moudré prostudovat si také běžné datové struktury a algoritmy.