1. diel - Programovanie v Minecraftu - Úvod a Hello world
Vitajte u prvej lekcie kurzu o programovaní a príkazoch v hre Minecraft. Predpokladám, že hru poznáte aspoň trochu do hĺbky, vzhľadom k tomu, že si predstavíme celkom pokročilých mechaniky. Dôležitá je znalosť správanie predmetov a blokov hry, tiež znalosť Redstone a herných mechanik. Programovať budeme priamo v hre Minecraft, modding tejto hry priamo v jazyku Java sa naopak venuje seriál Minecraft modding. Navyše sa na minecraftových príkazoch príjemným spôsobom naučíte aj niečo málo o Jave, pretože je v nej Minecraft napísaný a napríklad syntaxe NBT a ďalšie veci z nej vychádzajú. Dnes začneme s úplnými základmi, predstavíme si príkaz / say, / give a základy Selector.
Testovacie svet
Ako prvé si vytvoríme svet. Odporúčam vám SuperFlat s predvoľbou "Redstone Ready", ale výber je samozrejme čisto na vás. Musíte povoliť cheaty (to aby vám príkazy fungovali) a východiskové Gamemody nastaviť na creative.
Do inventára si pripravte:
- nejaký stavebný blok
- čudlík
- redstone blok
- plot
- nejaká spawn vajíčka zvierat (ja použijem prasa a kravu).
Ďalej budete potrebovať command block (príkazový blok). Nenájdete ho nikde v inventári, musíte použiť príkaz. Otvorte si chat (Štandardne klávesa T) a napíšte:
/give @p minecraft:command_block
V poslednej časti vám stačí napísať len niečo ako "Command" a stlačiť Tab. Tab sa v minecraftových textových poliach chová ako automatický Dokladač textu (ako je napr. Microsoft Intellisense vo Visual Studiu), v chate napovedá mená, u príkazov doplní syntax. Odporúčam vám si zvyknúť Tab stláčať, ušetríte dosť času.
Do inventára vám pribudne taký oranžový blok, položte si ho na zem a rozkliknite pravým tlačidlom myši. Tlačidiel dole si zatiaľ nevšímajte, pozrite sa hore, na textové pole. Práve sem sa zadávajú príkazy.
Poďme si ešte povedať, čo sme to vlastne predtým vykonali. Lomítkom sme uviedli príkaz give, ktorý dá špecifikované entite špecifikovaný predmet z hry. Entita je vlastne každá vec v hre, ktorá nie je blok alebo súčasť prostredia (slnko teda tiež nie je entita) - napr. Hráč, zvieratá, príšery, ale aj Item Frame pod. V tomto prípade sme entitu špecifikovali selektorom @p, vysvetlíme si nižšie. Predmet minecraft: command_block je dúfam jasný. V ďalšom diele si tento príkaz predstavíme komplexnejšie, uvidíte, že sa do neho dá zapísať oveľa viac.
Hello, world!
Býva zvykom, že prvý program zobrazí nejaký text, hovorí sa mu "Hello, world", ani dnes tomu nebude inak. Otvorte si command block a napíšte:
/say Hello, World!
Dole stlačte tlačidlo done, tým príkaz do bloku uložíte. Tlačidlo Cancel alebo stlačenie Esc ukončí zadávanie docommand blocku bez uloženia. Vedľa tohto command blocku si Pristavte blok, na ktorý dajte tlačítko, alebo jednoducho ku command blocku položte redstone block. Po aktivizácii by sa v chate malo objaviť:
[@] Hello, World!
Ten zavináč v hranatej zátvorke je vlastne meno command blocku, ak si blok premenujete na nákove, zobrazí sa tam práve toto meno. Ako ho zmeniť cez príkazy si povieme neskôr, zatiaľ používajte nákovu, ak sa vám zavináč nepáči.
Ešte si blok rozkliknite a pozrite sa do prostriedku, je tam také zašednuté textové políčko, označené "previous output". Tam sa vypisuje správa o vykonaní - čo sa vykonalo a ako a ak sa niečo nepodarilo, vypíše sa, kde nastala aká chyba (Chybové hlásenie je vypísané červeno aj pri vykonávaní v chate). Tlačidlom vedľa môžete okienko zatvoriť.
Selektory
Teraz si povieme o selektor. Keď otvoríte command block, máte ich tam vypísané, sú to:
@p – vybere nejbližšího hráče @a – vybere všechny hráče @r – náhodně vybere hráče @e – vybere všechny entity
Tieto selektory sa používajú v prípade, že v príkaze špecifikujete cieľ (target), na ktorom sa má príkaz vykonať. Je to vždy nejaká entita (vyššie sme v príkaze give špecifikovali, že blok má dostať ten najbližší hráč - vy). Skúste si napríklad toto:
/say Hello, @p
A výsledok bude niečo ako:
[@] Hello, Krepsy3
(Samozrejme s vaším menom)
Tým sme príkazu say povedali, že má vypísať meno najbližšieho hráčov (pre skutočných programátorov sa object (entita) přetypovala na hráča a bola vykonaná metóda toString ()).
Použitie na iné entite
Predpokladám, že hráte sami, tak si ešte skúste toto:
/say @e
Teraz si vedľa postavte ohrádku a Spawn v nej nejaké entity, ja použijem prasa a kravu. Výstup príkazu:
[@] Cow, Krepsy3 and Pig
Pokiaľ máte Minecraft v slovenčine, je možné, že dostanete
[@] Kráva, Krepsy3 a Prase
Ak hráte ešte aspoň s jedným hráčom na tom istom svete, vyskúšajte si aj obaja zostávajúce selektory.
Argumenty selektorov
Selektorům môžeme tiež odovzdávať argumenty, ktorých je pomerne slušné množstvo. Úplný zoznam nájdete na Minecraft wiki ( http://minecraft.gamepedia.com/Commands...), my si ich však predstavíme postupne počas celého seriálu. Začneme nám už známym príkazom / say. Ako viete,
/say @p
povie meno najbližšieho hráča (ku command blocku, ktorý príkaz vykonal). Doplňte teraz tento príkaz o tvrdenie "m", a to takto:
/say @p[m=0]
Ako vidíte, argumenty sa píšu ihneď za selector do hranaté zátvorky. Najskôr oznámite meno argumentu (m), uvediete znamienko "=" rovná sa a za neho hodnotu argumentu, po ktorej má selektor pátrať. Keď sa teraz pokúsite príkaz vykonať, nestane sa nič. Argument m totiž deklaruje, že sa hľadá hráč so špecifickým herným módom (Gamemody). Tie sú celkom štyri:
- Survival - 0
- Creative - 1
- Adventure - 2
- Spectator - 3
Survival aj creative iste poznáte. V Creativu sa práve nachádzate, survival je hlavný mód (prežitie). Iste teraz chápete, že príkaz má povedať meno najbližšieho hráča, ktorý sa nachádza v móde survival. Vzhľadom k rozloženiu látky na celý seriál musel byť prvý selektorové argument publikovaný už v tomto diele. Ako zmeniť Gamemody si teda ukážeme hneď na začiatku budúceho dielu a potom plynule nadviažeme už podľa plánu. Ak teda nebudete v budúcom diele niečomu z argumentov selektorov rozumieť, doporučujem vám vrátiť sa sem.
Pre úvodný diel je to už všetko, nabudúce budeme pokračovať s prácou sa Selector a pozrieme sa na príkazy / tell, / give (trochu pokročileji), / clear, / Gamemody, / kill a / testfor. Tieto príkazy sa týkajú čisto entít, takže si na nich precvičíte selektory a budete môcť s entitami manipulovať. Svet máte nižšie k stiahnutiu, môžete sa na všetko znovu pozrieť a vyskúšať.
Mal si s čímkoľvek problém? Stiahni si vzorovú aplikáciu nižšie a porovnaj ju so svojím projektom, chybu tak ľahko nájdeš.
Stiahnuť
Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami
Stiahnuté 115x (448.97 kB)
Aplikácia je vrátane zdrojových kódov v jazyku Minecraft