Hlavní Streamovací Služby Hackování Minecraftu na Raspberry Pi

Hackování Minecraftu na Raspberry Pi



Raspberry Pi 2 je překvapivě schopné zařízení, vzhledem k ceně pod 30 GBP. Dodává se s předinstalovanou verzí Minecraftu spolu s API, které vám umožní psát kód pro spuštění ve virtuálním světě. Děláte to v Pythonu, který se snadno naučíte. Kombinace Pi, Pythonu a Minecraftu poskytuje skvělou příležitost začít zkoumat možnosti programování. A vzrušení z toho, že se dům staví na virtuální krajině, není jen pro děti.

co je to hvězda na snapchatu

Skriptování v Minecraftu

Minecraft je otevřená sandboxová hra, která nemá dějovou linii. Někdy se to označuje jako virtuální Lego, protože hráč může pomocí bloků, které má k dispozici, vybudovat jakýkoli druh struktury. Verze dodávaná s Raspberry Pi má omezenou sadu funkcí vhodných pro její vzdělávací roli - takže se nemusíte bát, že vás budou honit například zombie. Interakce s tímto světem nevyžaduje žádné speciální nastavení, pouze nedávné sestavení operačního systému Raspbian plus programovací prostředí. Rozhodl bych se pro Geany, který si můžete nainstalovat otevřením LXTerminal a zadáním:

sudo apt-get install geany

Začněme vytvořením skriptu pro stavbu domu před hráčem - ale místo toho, abychom jeden plácli na místo, budeme jej animovat. Chystáme se také zabudovat do různých konfigurovatelných nastavení, která hráči umožní experimentovat s různými rozměry a materiály. Díky tomu bude program také modulární, takže jej lze použít jako základ pro vytváření sofistikovanějších jamek.

Aby kód fungoval, načtěte jej do Geany, poté spusťte Minecraft a vytvořte nový svět. Stisknutím klávesy Tab uvolněte kurzor z okna Minecraftu a kliknutím na ikonu ozubeného kola v Geany (nebo stisknutím klávesy F5) spusťte skript. Měli byste vidět, jak se dům kouzelně sestavuje. Pokud ne, zkuste se otočit - může to být za vámi! Můžete vidět skript v akci tady . Jak tedy scénář funguje? Nejprve to otevře odkaz na Minecraft:

importovat mcpi.minecraft jako minecraft, čas mc = minecraft.Minecraft.create ()

V Pythonu je důležité věnovat pozornost odsazení, protože tak se kód dělí na bloky. V tomto případě jsou oba řádky zarovnány s levým okrajem: první řádek importuje knihovny Minecraft a Time a druhý vytvoří objekt Minecraft, který budeme používat po celou dobu. Dalších 25 řádků nastavuje několik proměnných pro bloky, které budeme používat, abychom je mohli označovat jako, řekněme, wood_planks, spíše než podle jejich ID bloku (v tomto případě 5). Poté označíme, který z těchto bloků bude použit pro stěny, který pro střechu atd. Můžeme snadno změnit konstrukci domu, například tím, že vyměníme cihlové zdi za dlažební kostky. Nakonec jsme nastavili šířku, délku a výšku našeho požadovaného obydlí.

Nyní voláme funkci Minecraft mc.player.getTilePos (), abychom našli hráče v krajině, a hodnoty, které se vracejí, se pak použijí k vytvoření dvou proměnných, levé a dolní, k popisu, kde bude první roh obydlí .

Poté struktura skriptu odpovídá procesu Minecraft ručního stavění domu. Začneme vyčištěním prostoru, takže pokud se hráč rozhodne postavit dům uvnitř, řekněme, hory, obytný prostor nebude z pevného kamene. Tady je blok kódu - funkce v Pythonu - který to dělá:

def clear_house (jaderná):
pokud jaderný == True:
blast_zone = 20
jiný:
blast_zone = 0
mc.setBlocks (left-blast_zone, player_
broušený, spodní + zóna výbuchu, vlevo + šířka + výbuch_
zóna, hráčské pole + výška + výbuch_
zóna + 10, dolní délka-zóna výbuchu, air_block)

Když zavoláme clear_house, předáme parametr jaderný. Má hodnotu True nebo False. Můžete to zkusit volat s True, abyste vyčistili větší objem kolem cílové oblasti, nebo to zavolat s False, abyste omezili vůli na vnitřní rozměry domu. V Minecraftu se funkce mc.setBlocks používá k vytvoření krychle bloků tak, že jí předáte souřadnice ve třech rozměrech protilehlých rohů následované typem bloku, který chcete použít. V tomto případě čistíme prostor, takže používáme vzduch.

Jakmile jsme vyčistili prostor, je čas přejít ke stavbě. Každá z těchto fází výstavby probíhá ve své vlastní funkci. Na konci skriptu uvidíte funkci nazvanou main (), která řídí tok programu voláním jednotlivých fází výstavby postupně. Díky rozumnému pojmenování našich funkcí a jejich volání z main () je snadné pochopit, co program dělá:

def main ():
clear_house (False)
start_pos = [vlevo, dole, player_
přízemní]
build_floor (start_pos)
course = build_walls (start_pos)
add_door (door_position)
time.sleep (zpoždění * 10)
build_roof (start_pos, samozřejmě)

Další funkce zvaná main () vytváří podlahu - používá mc. setBlocks znovu vybojuje základ (pro umělecký efekt) a poté přidá kostku podlahových dlaždic s hloubkou jednoho bloku a vytvoří v našem domě pevnou podlahu.

jak vědět, jaké mám RAM

Budování zdí

Funkce build_walls je srdcem programu. Nejúčinnějším způsobem, jak vytvořit skořápku domu, by bylo rozbít pevnou kostku cihel a poté pomocí clear_house vybojovat interiér. Chceme však, aby dům vypadal, že se staví sám, takže musíme bloky umístit jednotlivě, jeden za druhým. Zde je zjednodušená verze kódu pro stavbu zdí:

def build_course (start_pos, směr,
kurs):
bloky = 1
current_horiz = start_pos [0]
current_vert = start_pos [1]

pokud směr == nahoru nebo
směr == dolů:
number_of_blocks = délka
jiný:
number_of_blocks = width

zatímco blokymc.setBlock (aktuální_horiz, hráč_
zem + kurz, current_vert, wall_block)
pokud směr == nahoru:
current_vert- = 1
elif směr == dolů:
current_vert + = 1
směr elif == vpravo:
current_horiz + = 1
jiný:

current_horiz- = 1
bloky = bloky + 1 # přejde na další blok
time.sleep (zpoždění)

Začínáme uložením výchozí pozice - bude to poloha posledního bloku položeného z předchozího kurzu bloků. Poté určíme, kolik bloků položit, podle toho, zda jdeme po délce budovy nebo její šířce.

Fáze budování je obsažena v bloku while - to pokračuje v běhu, dokud nepoložíme všechny bloky. mc.setBlock umístí jeden blok na zobrazené souřadnice, poté zvýší jednu z těchto souřadnic v závislosti na směru, kterým pokládáme. Výsledkem je, že bloky jsou pokládány podél zdi před otočením rohu a pokračováním v obdélníku, dokud není kurz dokončen.

jak se dostat kik na mac

Konečná verze kódu je trochu více zapojena a přidává okna do každé zdi. Okna jsou dynamicky dimenzována tak, aby měla poloviční délku stěny a byla vycentrována. Zaznamenává také polohu dveří; přidává se, jakmile jsou postaveny zdi. Kurzy jsou řízeny z funkce build_walls, která opakuje funkci build_course pro každý kurz bloků, dokud nedosáhne konečné výšky.

Můžete si dokonce zkusit postavit dům v oceánu nebo ve vzduchu - to provedete dvojitým stisknutím mezerníku, abyste letěli, a dalším stisknutím se zvednete, než spustíte skript. Změňte proměnné wall_block a roof_block, abyste zjistili, co se stane, když vytvoříte stěny nebo střechu ze zlata nebo lávy. Můžete přidat vlastní bloky podle úplného seznamu tady a přidání přidružené proměnné do skriptu. Náročnější úpravy mohou zahrnovat přidání více pater do struktury, pokud je proměnná výšky nastavena na dostatečně velkou hodnotu. Zjistěte, jak například přidat věže, a máte předpoklady pro hrad Minecraftu.

Tyto vylepšení mohou znít triviálně, ale profesionálně programuji již více než 20 let a stále mě vzrušuje, když fragment kódu funguje podle plánu. Pokud jste nikdy předtím neprogramovali, doufám, že to uděláte - a pokud máte v domácnosti fanoušky Minecraftu, navrhuji nechat je uvolnit v kódu a zjistit, kam je zavede. Odkazy na zdroje Minecraft Pi najdete na kevpartner.co.uk/programování .

Zajímavé Články

Redakce Choice

Váš ovladač PS5 DualSense bude brzy znít a sdílet lépe
Váš ovladač PS5 DualSense bude brzy znít a sdílet lépe
Sony spouští beta verzi, která vám poskytne lepší zvuk z ovladače DualSense vašeho PS5 a více interaktivních funkcí, když sledujete obrazovku PS5 kamaráda.
Chrome blokuje rušivé videoreklamy
Chrome blokuje rušivé videoreklamy
Od 5. srpna 2020 obsahuje Google Chrome aktualizovanou funkci blokování obsahu, která blokuje rušivé reklamy. Při rozhodování o tom, které reklamy nejvíce narušují web, Google spoléhá na standardy Better Ads Standards. Standardy Better Ads Standards jsou vyvíjeny skupinou Coalition for Better Ads. Byl vytvořen významnými mezinárodními subjekty
Jaký je rozdíl mezi Throwback Thursday a Flashback Friday?
Jaký je rozdíl mezi Throwback Thursday a Flashback Friday?
Pokud jste na sociálních sítích, pravděpodobně jste viděli hashtagy #ThrowbackThursday a #FlashbackFriday. Jaký je mezi nimi rozdíl?
Jak někoho ztlumit na Instagramu, Facebooku a Twitteru, aniž by o tom věděl
Jak někoho ztlumit na Instagramu, Facebooku a Twitteru, aniž by o tom věděl
Nikdo nemá rád hassledování na sociálních médiích. Tam přijde vhod naučit se umlčovat lidi na sociálních médiích, místo aby je blokovali. Nežádoucí obsah můžete vyloučit, aniž byste nahlášili urážejícího uživatele, že se naštval
Jak vymazat mezipaměť na Facebooku
Jak vymazat mezipaměť na Facebooku
Vymazání mezipaměti Facebooku v aplikaci nebo ve webovém prohlížeči je rychlé, snadné a může zlepšit výkon. Zde je návod, jak vymazat soubor mezipaměti.
Zapomněli jste heslo k Apple ID? Zde je návod, jak se zotavit
Zapomněli jste heslo k Apple ID? Zde je návod, jak se zotavit
Mnoho míst, která na internetu navštěvujeme, vyžaduje, abychom měli přihlašovací údaje, abychom je mohli zadat. A když je potřeba tolik hesel, je normální na některá z nich zapomenout. Například heslo Apple ID není nic
Jak povolit režim Letadlo v systému Windows 10
Jak povolit režim Letadlo v systému Windows 10
Zde je návod, jak povolit režim Letadlo v systému Windows 10. Pokrývá všechny možné způsoby, včetně Nastavení, Centra akcí a plovoucí nabídky Síť.