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

Jak ve Firefoxu povolit samostatný proces na kartu
Jak ve Firefoxu povolit samostatný proces na kartu
Vždy sleduji nejnovější noční sestavy Firefoxu, protože tam nejdříve přistávají všechny skvělé nové funkce. Zde je úžasná zpráva, kterou jsem o Firefoxu četl. Aktuální noční verze prohlížeče Firefox přichází s tajnou skrytou funkcí, která vám umožňuje povolit samostatný proces pro každou kartu ve Firefoxu! Co dělá
Chromebook se nepřipojí k hotelové Wi-Fi - co dělat
Chromebook se nepřipojí k hotelové Wi-Fi - co dělat
Máte podivné problémy a nemůžete se připojit k síti Wi-Fi v hotelu, ve kterém bydlíte? Nejsi sám. Chromebooky se mohou potýkat s problémy s bezdrátovým připojením, kde se připojení každých pár sekund přeruší
Jak zjistit něčí narozeniny
Jak zjistit něčí narozeniny
Existuje mnoho důvodů, proč byste chtěli zjistit narozeniny jiné osoby, aniž byste se jich jen zeptali. Možná jste velkorysý typ a chcete zjistit něčí narozeniny, abyste mohli hodit a
Recenze PS4 Slim: Kompaktní, krásná a přesně to, co byste očekávali
Recenze PS4 Slim: Kompaktní, krásná a přesně to, co byste očekávali
PS4 Slim není tak transformativní, jak jsem doufal. Microsoft Xbox One S rozhodně není v žádném případě. S konzolí PS4 Slim vytvořila společnost Sony konzolu, která pouze zaškrtne políčka
Recenze Lenovo IdeaPad Y510p
Recenze Lenovo IdeaPad Y510p
Když IdeaPad Y510p dorazil do kanceláře PC Pro, bylo jasné, že se zaměřuje na vysoce výkonné hraní. S černým šasi a krvavě červenou podsvícenou klávesnicí to připomíná zastrašující řadu specializovaných her Alienware.
Jak přeložit tabulku Google pomocí Překladače Google
Jak přeložit tabulku Google pomocí Překladače Google
Tabulky Google jsou pohodlnou platformou se spoustou funkcí. Jedna z těchto funkcí vám dává možnost přeložit obsah buněk tabulky. Můžete překládat jakékoli slovo v Tabulkách Google, detekovat jazyky a vytvářet seznamy slovíček.
iPhone 7 – Jak vymazat mezipaměť Chrome a aplikací
iPhone 7 – Jak vymazat mezipaměť Chrome a aplikací
Účelem mezipaměti je zrychlit načítání určitých aplikací a služeb, abyste mohli mít plynulejší práci. Časem se mezipaměť hromadí, což může nejen zatěžovat vaše úložiště, ale také zpomalovat