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 pridať aplikácie alebo kanály do televízora LG
Ako pridať aplikácie alebo kanály do televízora LG
LG TV ponúka výber z viac ako 200 aplikácií, pričom všetky si môžete stiahnuť do svojho Smart TV. Všetko, čo potrebujete, je vaše diaľkové ovládanie a pripojenie na internet. LG Content Store ponúka rôzne streamovacie aplikácie, hry,
Ako naplánovať odoslanie textovej správy v iMessage
Ako naplánovať odoslanie textovej správy v iMessage
Už ste sa niekedy zobudili uprostred noci a spomenuli ste si, že ráno potrebujete niekomu poslať správu? Stáva sa to každému. Zatiaľ čo väčšina moderných aplikácií umožňuje oneskorené odosielanie správ, iMessage stále nie
SKUTOČNÉ systémové požiadavky pre Windows 10
SKUTOČNÉ systémové požiadavky pre Windows 10
Po vydaní Windows 10 verzie 1903 spoločnosť Microsoft aktualizovala oficiálne systémové požiadavky. Používatelia, ktorých počítače majú minimálny hardvér potrebný na inštaláciu systému Windows 10, si už mohli všimnúť, že operačný systém je doslova nepoužiteľný, pretože beží extrémne pomaly. Technicky bude fungovať s minimálnymi požiadavkami, ale skúsenosti budú zlé.
Recenzia reproduktorov Bose Companion 3 Series II
Recenzia reproduktorov Bose Companion 3 Series II
Túto minulú sobotu sme tu na Floride mali pekelnú búrku. Blesk a z neho vyplývajúce elektrické príboje dokázali vyradiť môj systém Verizon FIOS, kartu NIC v mojom hlavnom stolnom počítači a televíziu. Tiež sa ukázalo (
Ako sťahovať skladby zo Spotify
Ako sťahovať skladby zo Spotify
Možno sa chystáte na odľahlú pláž alebo idete na kemping bez Wi-Fi, no napriek tomu chcete počúvať svoje obľúbené skladby na Spotify. Alebo možno len chcete počúvať hudbu a zároveň si šetriť
Ako pridať omáčky k objednávkam DoorDash
Ako pridať omáčky k objednávkam DoorDash
DoorDash je vynikajúca donášková služba, ktorá prinesie celý zážitok z reštaurácie až k vám domov. Získate všestranne prispôsobenú objednávku, ktorá vyhovuje vášmu vkusu a preferenciám. Môžete ľahko pridať omáčky, nápoje a urobiť ďalšie špeciálne požiadavky
Ako poslať e-mail nezverejneným príjemcom z Gmailu
Ako poslať e-mail nezverejneným príjemcom z Gmailu
Ak chcete poslať e-mail skupine bez zverejnenia e-mailových adries každého príjemcu, stačí tento malý trik s Gmailom.