Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Lekce 1 - Programování v Minecraftu - Úvod a Hello world

Vítejte u první lekce kurzu o programování a příkazech ve hře Minecraft. Předpokládám, že hru znáte alespoň trochu do hloubky, vzhledem k tomu, že si představíme docela pokročilé mechaniky. Důležitá je znalost chování předmětů a bloků hry, také znalost redstonu a herních mechanik. Programovat budeme přímo ve hře Minecraft, moddingu této hry přímo v jazyce Java se naopak věnuje seriál Minecraft modding. Navíc se na minecraftových příkazech příjemným způsobem naučíte i něco málo o Javě, jelikož je v ní Minecraft napsaný a například syntaxe NBT a další věci z ní vycházejí. Dnes začneme s úplnými základy, představíme si příkaz /say, /give a základy selectorů.

Tento tutoriál je napsán pro verzi Minecraftu 1.10.X (Java Edice).

Testovací svět

Jako první si vytvoříme svět. Doporučuji vám superflat s předvolbou „Redstone Ready“, ale výběr je samozřejmě čistě na vás. Musíte povolit cheaty (to aby vám příkazy fungovaly) a výchozí gamemode nastavit na creative.

Do inventáře si připravte:

  • nějaký stavební blok
  • čudlík
  • redstone blok
  • plot
  • nějaká spawn vajíčka zvířat (já použiji prase a krávu).

Dále budete potřebovat command block (příkazový blok). Nenajdete ho nikde v inventáři, musíte použít příkaz. Otevřete si chat (Standardně klávesa T) a napište:

/give @p minecraft:command_block

V poslední části vám stačí napsat pouze něco jako „comman“ a stisknout Tab. Tab se v minecraftových textových polích chová jako automatický doplňovač textu (jako je např. Microsoft Intellisense ve Visual Studiu), v chatu napovídá jména, u příkazů doplní syntaxi. Doporučuji vám si zvyknout Tab mačkat, ušetříte dost času.

Do inventáře vám přibude takový oranžový blok, položte si jej na zem a rozklikněte pravým tlačítkem myši. Tlačítek dole si zatím nevšímejte, podívejte se nahoru, na textové pole. Právě sem se zadávají příkazy.

Pojďme si ještě říci, co jsme to vlastně předtím provedli. Lomítkem jsme uvedli příkaz give, který dá specifikované entitě specifikovaný předmět ze hry. Entita je vlastně každá věc ve hře, která není blok nebo součást prostředí (slunce tedy také není entita) - např. hráč, zvířata, příšery, ale i Item Framy apod. V tomto případě jsme entitu specifikovali selektorem @p, vysvětlíme si níže. Předmět minecraft:com­mand_block je doufám jasný. V dalším díle si tento příkaz představíme komplexněji, uvidíte, že se do něj dá zapsat mnohem více.

Hello, world!

Bývá zvykem, že první program zobrazí nějaký text, říká se mu „Hello, world“, ani dnes tomu nebude jinak. Otevřete si command block a napište:

/say Hello, World!

Dole stiskněte tlačítko done, tím příkaz do bloku uložíte. Tlačítko Cancel nebo stisk Esc ukončí zadávání docommand blocku bez uložení. Vedle tohoto command blocku si přistavte blok, na který dejte čudlík, nebo prostě ke command blocku položte redstone block. Po zaktivování by se v chatu mělo objevit:

[@] Hello, World!

Ten zavináč v hranaté závorce je vlastně jméno command blocku, pokud si blok přejmenujete na kovadlině, zobrazí se tam právě toto jméno. Jak ho změnit přes příkazy si povíme později, zatím používejte kovadlinu, pokud se vám zavináč nelíbí.

Ještě si blok rozklikněte a podívejte se doprostřed, je tam takové zašedlé textové políčko, označené "previous output". Tam se vypisuje zpráva o provedení - co se provedlo a jak a pokud se něco nepovedlo, vypíše se, kde nastala jaká chyba (Chybové hlášení je vypsáno červeně i při provádění v chatu). Tlačítkem vedle můžete okénko zavřít.

Selektory

Nyní si povíme o selektorech. Když otevřete command block, máte je tam vypsané, jsou to:

@p – vybere nejbližšího hráče
@a – vybere všechny hráče
@r – náhodně vybere hráče
@e – vybere všechny entity

Tyto selektory se používají v případě, že v příkazu specifikujete cíl (target), na kterém se má příkaz vykonat. Je to vždy nějaká entita (výše jsme v příkazu give specifikovali, že blok má dostat ten nejbližší hráč – vy). Zkuste si například toto:

/say Hello, @p

A výsledek bude něco jako:

[@] Hello, Krepsy3

(samozřejmě s vaším jménem)

Tím jsme příkazu say řekli, že má vypsat jméno nejbližšího hráče (pro opravdové programátory se object (entita) přetypovala na hráče a byla provedena metoda ToString()).

Použití na jiné entitě

Předpokládám, že hrajete sami, tak si ještě zkuste toto:

/say @e

Nyní si vedle postavte ohrádku a spawněte v ní nějaké entity, já použiji prase a krávu. Výstup příkazu:

[@] Cow, Krepsy3 and Pig

Pokud máte Minecraft v češtině, je možné, že dostanete

[@] Kráva, Krepsy3 a Prase

Jestli hrajete ještě alespoň s jedním hráčem na tomtéž světě, vyzkoušejte si i oba zbývající selektory.

Argumenty selektorů

Selektorům můžeme také předávat argumenty, kterých je poměrně slušné množství. Úplný výčet najdete na Minecraft wiki (http://minecraft.gamepedia.com/Commands#…), my si je však představíme postupně během celého seriálu. Začneme nám již známým příkazem /say. Jak víte,

/say @p

řekne jméno nejbližšího hráče (ke command blocku, který příkaz vykonal). Doplňte nyní tento příkaz o argument „m“, a to takto:

/say @p[m=0]

Jak vidíte, argumenty se píší ihned za selector do hranaté závorky. Nejdříve sdělíte jméno argumentu (m), uvedete znaménko "=" rovná se a za něj hodnotu argumentu, po které má selektor pátrat. Když se nyní pokusíte příkaz vykonat, nestane se nic. Argument m totiž deklaruje, že se hledá hráč se specifickým herním módem (gamemode). Ty jsou celkem čtyři:

  • Survival - 0
  • Creative - 1
  • Adventure - 2
  • Spectator - 3

Survival i creative jistě znáte. V creativu se právě nacházíte, survival je hlavní mód (přežití). Jistě nyní chápete, že příkaz má říci jméno nejbližšího hráče, který se nachází v módu survival. Vzhledem k rozložení látky na celý seriál musel být první selektorový argument publikován již v tomto díle. Jak změnit gamemode si tedy ukážeme hned na začátku příštího dílu a poté plynule navážeme již podle plánu. Pokud tedy nebudete v příštím díle něčemu z argumentů selektorů rozumět, dopuručuji vám vrátit se sem.

Pro úvodní díl je to již vše, příště budeme pokračovat s prací se selectory a podíváme se na příkazy /tell, /give (trochu pokročileji), /clear, /gamemode, /kill a /testfor. Tyto příkazy se týkají čistě entit, takže si na nich procvičíte selektory a budete moci s entitami manipulovat. Svět máte níže ke stažení, můžete se na vše znovu podívat a vyzkoušet.


 

Měl jsi s čímkoli problém? Stáhni si vzorovou aplikaci níže a porovnej ji se svým projektem, chybu tak snadno najdeš.

Stáhnout

Stažením následujícího souboru souhlasíš s licenčními podmínkami

Staženo 108x (448.97 kB)
Aplikace je včetně zdrojových kódů v jazyce Minecraft

 

Všechny články v sekci
Programování v Minecraftu
Přeskočit článek
(nedoporučujeme)
Programování v Minecraftu - Selektorové argumenty, entity
Článek pro vás napsal krepsy3
Avatar
Uživatelské hodnocení:
18 hlasů
Autor se učí programovat zde na itnetworku, zatím zejména jazyk C#. Znalosti chce mít ucelené, proto při vývoji aplikací studuje potřebné funkce do hloubky. Vyzná se v programování ve hrách, jako je Minecraft či Ricochet.
Aktivity