Hlavná Streamovacie Služby Hacking Minecraftu na Raspberry Pi

Hacking Minecraftu na Raspberry Pi



Raspberry Pi 2 je prekvapivo schopné zariadenie, vzhľadom na jeho cenu pod 30 libier. Dodáva sa s predinštalovanou verziou Minecraftu spolu s API, ktoré vám umožňuje písať kód, ktorý sa má spúšťať vo virtuálnom svete. Robíte to v Pythone, ktorý sa dá ľahko naučiť. Kombinácia Pi, Pythonu a Minecraftu poskytuje skvelú príležitosť začať skúmať možnosti programovania. A vzrušenie, keď vidíš dom stavať sa na virtuálnej krajine, nie je len pre deti.

orezať viac obrázkov naraz v systéme Windows 10

Skriptovanie v Minecrafte

Minecraft je otvorená karanténa, ktorá nemá sledovať dejovú líniu. Niekedy sa to označuje ako virtuálne lego, pretože hráč môže pomocou blokov, ktoré má k dispozícii, vybudovať akúkoľvek štruktúru. Verzia dodávaná s Raspberry Pi má obmedzenú sadu funkcií vhodných pre jej vzdelávaciu úlohu - takže sa nemusíte obávať, že vás napríklad prenasledujú zombie. Interakcia s týmto svetom nevyžaduje žiadne špeciálne nastavenie, iba nedávne zostavenie operačného systému Raspbian a programovacie prostredie. Rozhodol by som sa pre Geany, ktorú si môžete nainštalovať otvorením LXTerminal a zadaním:

sudo apt-get nainštalovať geany

Začnime vytvorením skriptu na stavbu domu pred prehrávačom - ale namiesto toho, aby sme jeden plácli na miesto, ideme ho animovať. Budeme tiež stavať na rôznych konfigurovateľných nastaveniach, ktoré hráčovi umožnia experimentovať s rôznymi rozmermi a materiálmi. Toto tiež urobí program modulárnym, takže ho možno použiť ako základ pre vytváranie zložitejších vrtov.

Aby kód fungoval, načítajte ho do Geany, potom spustite Minecraft a vytvorte nový svet. Stlačením klávesu Tab uvoľníte kurzor z okna Minecraftu a kliknutím na ikonu ozubenia v Geany (alebo stlačením klávesu F5) spustíte skript. Mali by ste vidieť, ako sa dom čarovne montuje. Ak to neurobíte, skúste sa otočiť - môže to byť za vami! Môžete vidieť skript v akcii tu . Ako teda funguje scenár? Najprv to otvorí odkaz na Minecraft:

importovať mcpi.minecraft ako minecraft, čas mc = minecraft.Minecraft.create ()

V Pythone je dôležité venovať pozornosť odsadeniu, pretože tak je kód rozdelený do blokov. V tomto prípade sú obidva riadky v jednej rovine s ľavým okrajom: prvý riadok importuje knižnice Minecraftu a Času a druhý vytvára objekt Minecraftu, ktorý môžeme používať v celom texte. Nasledujúcich 25 riadkov nastavuje niekoľko premenných pre bloky, ktoré budeme používať, aby sme ich mohli označiť skôr ako napríklad wood_planks, a nie podľa ich ID bloku (5, v tomto prípade). Potom označíme, ktorý z týchto blokov sa použije na steny, ktorý na strechu a podobne. Stavbu domu môžeme ľahko úplne zmeniť napríklad tak, že zameníme tehlové steny za dlažobné kocky. Nakoniec nastavíme šírku, dĺžku a výšku požadovaného obydlia.

Teraz nazývame funkciu Minecraftu mc.player.getTilePos (), aby sme našli hráča v krajine, a hodnoty, ktoré sa vrátia, sa potom použijú na vytvorenie dvoch premenných, ľavej a dolnej, na opis, kde bude prvý roh obydlia. .

Potom sa štruktúra skriptu zhoduje s procesom manuálnej stavby domu v Minecrafte. Začíname uvoľnením priestoru, aby sa hráč, ktorý sa rozhodne postaviť dom vo vnútri hory, povedzme v horách, z obývačky nestal kameňom. Toto je blok kódu - funkcia v Pythone - ktorá to robí:

def clear_house (jadrový):
ak jadrový == Pravda:
blast_zone = 20
inak:
blast_zone = 0
mc.setBlocks (left-blast_zone, player_
zem, spodok + výbuch_zóna, doľava + šírka + výbuch_
zóna, hráčske ihrisko + výška + výbuch_
zóna + 10, spodná dĺžka-zóna výbuchu, vzduchový blok)

Keď zavoláme clear_house, odovzdáme parameter jadrový. Má hodnotu True alebo False. Môžete sa pokúsiť nazvať to True, aby ste vyčistili väčší objem okolo cieľovej oblasti, alebo to zavolajte False, aby ste obmedzili vôľu na vnútorné rozmery domu. V Minecrafte sa funkcia mc.setBlocks používa na vytvorenie kocky blokov tak, že jej odovzdáte trojrozmerné súradnice protiľahlých rohov nasledované typom bloku, ktorý chcete použiť. V tomto prípade čistíme priestor, takže používame vzduch.

Len čo sme uvoľnili priestor, je čas prejsť na stavbu. Každá z týchto etáp výstavby prebieha vo svojej vlastnej funkcii. Na konci skriptu uvidíte funkciu nazvanú main (), ktorá riadi tok programu postupným volaním jednotlivých fáz výstavby. Vďaka rozumnému pomenovaniu našich funkcií a ich volaniu z main () je ľahké pochopiť, čo program robí:

def main ():
clear_house (False)
start_pos = [vľavo, dole, player_
zem]
build_floor (start_pos)
course = build_walls (start_pos)
add_door (door_position)
time.sleep (oneskorenie * 10)
build_roof (start_pos, kurz)

Ďalšia funkcia nazvaná main () zostavuje podlahu - používa sa v nej mc. setBlocks opäť vytesá základ (pre umelecký efekt) a potom pridá kocku podlahových dlaždíc s hĺbkou jedného bloku, aby v našom dome vznikla pevná podlaha.

kindle fire hd sa nezapne

Budovanie múrov

Funkcia build_walls je srdcom programu. Najefektívnejším spôsobom, ako vytvoriť škrupinu domu, je rozbiť pevnú kocku tehál a potom pomocou clear_house vydlabať interiér. Chceme však, aby sa dom zdal byť sám postavený, a preto musíme bloky umiestňovať jednotlivo, jeden za druhým. Tu je zjednodušená verzia kódu pre budovanie stien:

def build_course (start_pos, direction,
kurz):
bloky = 1
current_horiz = start_pos [0]
current_vert = start_pos [1]

ak smer == hore alebo
smer == dole:
number_of_blocks = dĺžka
inak:
number_of_blocks = šírka

zatiaľ čo blokymc.setBlock (current_horiz, player_
zem + kurz, current_vert, wall_block)
ak smer == hore:
current_vert- = 1
smer elif == dole:
current_vert + = 1
smer elif == doprava:
current_horiz + = 1
inak:

current_horiz- = 1
bloky = bloky + 1 # presun na nasledujúci blok
time.sleep (oneskorenie)

Začíname uložením východiskovej polohy - bude to poloha posledného bloku položeného z predchádzajúceho priebehu blokov. Potom určíme, koľko blokov treba položiť, v závislosti od toho, či ideme po dĺžke budovy alebo po jej šírke.

Fáza budovania je obsiahnutá vo chvíli, kým blok - to pokračuje, kým nezložíme všetky bloky. mc.setBlock umiestni jeden blok na zobrazené súradnice a potom zvýši jednu z týchto súradníc v závislosti od smeru, ktorým ležíme. Účinkom je, že bloky sú kladené pozdĺž steny pred otočením rohu a pokračovaním v obdĺžniku, kým nie je kurz dokončený.

ako umožniť chrome sťahovať škodlivé súbory

Konečná verzia kódu je trochu viac zapojená a do každej steny je pridané okno. Okná sú dynamicky veľké tak, aby boli v polovici dĺžky steny a vycentrované. Zaznamenáva tiež polohu dverí; pridáva sa, keď sú steny postavené. Kurzy sú riadené z funkcie build_walls, ktorá opakuje funkciu build_course pre každý kurz blokov, kým nedosiahne konečnú výšku.

Môžete si dokonca skúsiť postaviť dom v oceáne alebo vo vzduchu - to urobíte dvojitým stlačením medzerníka, aby ste leteli, a následným opätovným stlačením sa zdvihnete, skôr ako spustíte skript. Zmeňte premenné wall_block a roof_block, aby ste videli, čo sa stane, ak steny alebo strechu vytvoríte zo zlata alebo skutočne z lávy. Svoje vlastné bloky môžete pridať podľa úplného zoznamu tu a pridanie súvisiacej premennej do skriptu. Náročnejšie úpravy môžu zahŕňať pridanie viacerých poschodí do štruktúry, ak je premenná výšky nastavená na dostatočne veľkú hodnotu. Zistite, ako napríklad pridať veže, a máte predpoklady na vytvorenie hradu Minecraftu.

Tieto vylepšenia môžu znieť triviálne, ale programovaniu sa venujem profesionálne už viac ako 20 rokov a stále ma vzrušuje, keď úryvok kódu funguje podľa plánu. Ak ste nikdy predtým nenaprogramovali, dúfam, že to vyskúšate - a ak máte v domácnosti fanúšika Minecraftu, navrhujem nechať ich voľne v kóde a zistiť, kam ich to zavedie. Odkazy na zdroje Minecraft Pi nájdete na kevpartner.co.uk/programovanie .

Zaujímavé Články

Redakcia Choice

Ako stiahnuť video s blobom v adrese URL
Ako stiahnuť video s blobom v adrese URL
Sťahovanie videí môže byť problém, najmä ak web, ktorý používame, to nechce zjednodušiť. Niektoré webové stránky dokonca používajú binárny veľký objekt alebo blob na ich šifrovanie, aby ľuďom zabránili v sťahovaní ich videí.
Opera 65: Tu sú kľúčové zmeny
Opera 65: Tu sú kľúčové zmeny
Pred pár dňami vydal tím, ktorý stojí za populárnym prehliadačom Opera, novú verziu aplikácie. Opera 65 obsahuje množstvo vylepšení vstavanej funkcie blokovania sledovača, panela s adresou a ďalších. V prehliadači Opera 65 je možné zapnúť funkciu blokovania sledovania dostupnú v prehliadači od verzie 64
Ako skontrolovať, či je grafická karta kompatibilná s vaším počítačom
Ako skontrolovať, či je grafická karta kompatibilná s vaším počítačom
Zvažujete novú grafickú kartu? Inovácia grafickej karty (GPU) vám umožní hrať najnovšie hry, mať plynulejší obraz a zlepšiť celkový zážitok z práce s počítačom. Okrem kontroly špecifikácií však vy
Odstráňte jednotlivé návrhy automatického dopĺňania v prehliadači Google Chrome
Odstráňte jednotlivé návrhy automatického dopĺňania v prehliadači Google Chrome
Z dôvodu ochrany osobných údajov možno budete chcieť odstrániť určité návrhy pre konkrétne textové polia v prehliadači Google Chrome. Takto sa to dá urobiť.
Ako opraviť aktualizácie aplikácií v službe Google Play, zaseknuté pri čakaní
Ako opraviť aktualizácie aplikácií v službe Google Play, zaseknuté pri čakaní
Stiahnutie aplikácií z Obchodu Google Play by malo byť jednoduchým procesom. Používatelia sa však môžu niekedy stretnúť s problémom, keď sa na obrazovke zobrazí poznámka, že sťahovanie čaká na spracovanie, ale sťahovanie nikdy nepokračuje od čakajúcej fázy.
Prezerajte si svoje priečinky offline na OneDrive Premium pre Android
Prezerajte si svoje priečinky offline na OneDrive Premium pre Android
Spoločnosť Microsoft opäť aktualizovala svoju verziu klienta OneDrive pre Android a pridala jednu z najčastejšie požadovaných funkcií pre používateľov systému Premium. Prémioví používatelia OneDrive teraz môžu označiť celé priečinky, aby boli k dispozícii v offline režime. Samotný offline režim nie je pre aplikáciu nový, ale predtým si jeho používatelia mohli sťahovať
Ako odstrániť svoj účet Tinder v troch jednoduchých krokoch
Ako odstrániť svoj účet Tinder v troch jednoduchých krokoch