Põhiline Voogesitusteenused Minecrafti häkkimine Raspberry Pi peal

Minecrafti häkkimine Raspberry Pi peal



Raspberry Pi 2 on üllatavalt võimekas seade, arvestades selle alla 30 naela hinda. Kaasas on Minecrafti eelinstallitud versioon koos API-ga, mis võimaldab teil kirjutada virtuaalses maailmas käitamiseks mõeldud koodi. Teete seda Pythonis, mida on lihtne õppida. Pi, Pythoni ja Minecrafti kombinatsioon annab suurepärase võimaluse hakata uurima programmeerimise võimalusi. Ja põnevus näha, kuidas maja ehitab end virtuaalsele maastikule, pole samuti mõeldud ainult lastele.

miks Google'i laadimine võtab nii kaua aega?

Minecrafti skriptimine

Minecraft on avatud liivakastimäng, millel pole järgida süžeeliini. Mõnikord kirjeldatakse seda kui virtuaalset Legot, kuna mängija saab enda käsutuses olevaid klotse kasutades ehitada mis tahes struktuuri. Raspberry Pi komplektis oleval versioonil on piiratud funktsioonikomplekt, mis sobib selle hariva rolliga - nii et te ei pea muretsema näiteks zombide jälitamise pärast. Selle maailmaga suhtlemine ei vaja erilist seadistamist, vaid Raspbian OSi hiljutine ülesehitus pluss programmeerimiskeskkond. Valisin Geany, mille saate installida, avades LXTerminali ja tippides:

sudo apt-get install geany

Alustame stsenaariumi loomisega mängija ette maja ehitamiseks - selle asemel, et see lihtsalt oma kohale lüüa, animeerime selle. Ehitame ka mitmesuguseid seadistatavaid seadeid, mis võimaldavad mängijal katsetada erinevaid mõõtmeid ja materjale. See muudab programmi ka modulaarseks, nii et seda saab kasutada keerukamate kaevude loomise aluseks.

Koodi toimimiseks laadige see Geanysse, seejärel käivitage Minecraft ja looge uus maailm. Kursori vabastamiseks Minecrafti aknast vajutage klahvi Tab ja klõpsake skripti käivitamiseks Geany'is hammasrattaikooni (või vajutage klahvi F5). Peaksite nägema, kuidas maja võluväel ennast kokku paneb. Kui te seda ei tee, proovige ümber pöörata - see võib olla teie taga! Näete skripti toimimises siin . Niisiis, kuidas skript töötab? Noh, kõigepealt avab see lingi Minecraftile:

import mcpi.minecraft kui minecraft, aeg mc = minecraft.Minecraft.create ()

Pythonis on oluline pöörata tähelepanu taandele, sest nii jagatakse kood plokkideks. Sel juhul on mõlemad read vasaku veerisega ühel tasapinnal: esimene rida impordib Minecrafti ja Time teeke ning teine ​​loob Minecrafti objekti, mida saaksime kogu ulatuses kasutada. Järgmised 25 rida määravad mõned muutujad plokkidele, mida hakkame kasutama, et saaksime neile viidata näiteks puitplangudena, mitte nende ploki ID-na (antud juhul 5). Seejärel näitame, milliseid neist plokkidest kasutatakse seinte jaoks, milliseid katuse jaoks ja nii edasi. Maja konstruktsiooni saame hõlpsasti täielikult muuta, vahetades telliskiviseinad näiteks munakivi vastu. Lõpuks määrasime soovitud eluruumi laiuse, pikkuse ja kõrguse.

Nüüd kutsume mängija leidmiseks maastikul funktsiooni Minecraft mc.player.getTilePos () ja tagasi tulnud väärtusi kasutatakse siis kahe muutuja (vasak ja alumine) loomiseks, et kirjeldada, kus asub eluruumi esimene nurk. .

Seejärel sobib skripti ülesehitus Minecrafti protsessiga maja käsitsi ehitamiseks. Alustame ruumi tühjendamisest, nii et kui mängija otsustab maja ehitada, näiteks mäe sisse, ei ole elamispind kindel kivi. Siin on koodiplokk - funktsioon Pythonis -, mis seda teeb:

def clear_house (tuuma):
kui tuuma == Tõsi:
blast_zone = 20
muu:
blast_zone = 0
mc.setBlocks (vasak-blast_zone, mängija_
maa, põhi + lööklaine, vasak + laius + löök
tsoon, mängija väljak + kõrgus + löök
tsoon + 10, alumine pikkus-lööklaine, õhkblokk)

Kui kutsume clear_house, edastame parameetri tuuma. Sellel on väärtus True või False. Võite proovida seda helistada funktsiooniga True, et tühistada suurem maht sihtala ümbruses, või helistada valega, et piirata kliirens maja sisemõõtmetega. Minecraftis kasutatakse funktsiooni mc.setBlocks plokkidest kuubiku loomiseks, edastades sellele vastassuunaliste nurkade kolmemõõtmelised koordinaadid, millele järgneb soovitud plokitüüp. Sel juhul puhastame ruumi, seega kasutame õhku.

Kui oleme ruumi vabastanud, on aeg minna ehituse juurde. Kõik need ehitusetapid toimuvad oma ülesandes. Skripti lõpus näete funktsiooni nimega main (), mis kontrollib programmi voogu, kutsudes omakorda iga ehitusetapi. Kui nimetame oma funktsioonid mõistlikult ja nimetame neid nimest main (), on programmist lihtne aru saada:

def main ():
clear_house (vale)
alguspositsioon = [vasak, alumine, mängija_
jahvatatud]
build_floor (algus_positsioon)
kursus = build_walls (algus_positsioon)
add_door (door_position)
time.sleep (viivitus * 10)
build_roof (algus_positsioon, kursus)

Järgmine funktsioon, mida nimetatakse main (), ehitab põranda - selleks kasutatakse mc. setBlocks uuesti vundamendi nikerdamiseks (kunstilise efekti saavutamiseks) ja seejärel lisage ühe maja sügavusega põrandaplaatide kuup, et luua meie majas kindel põrand.

kuidas luua lahkarvamusel rolle

Seinte ehitamine

Funktsioon build_walls on programmi keskmes. Kõige tõhusam viis maja kesta loomiseks oleks tahke tellistest kuubiku laksutamine ja seejärel siseruumide nikerdamiseks clear_house. Kuid me tahame, et maja näib ise ehitavat, seega peame plokid üksteise järel eraldi paigutama. Siin on seinaehituskoodi lihtsustatud versioon:

def build_course (algus_positsioon, suund,
kursus):
plokid = 1
current_horiz = algus_positsioon [0]
current_vert = algus_positsioon [1]

kui suund == üles või
suund == alla:
blokeeringute arv = pikkus
muu:
blokeeringute arv = laius

samas blokeeribmc.setBlock (praegune_horiz, mängija_
maa + rada, praegune_versioon, seina_blokk)
kui suund == üles:
current_vert- = 1
elifi suund == alla:
current_vert + = 1
elifi suund == paremale:
current_horiz + = 1
muu:

current_horiz- = 1
plokid = plokid + 1 # liiguvad järgmisele plokile
time.sleep (viivitus)

Alustame algpositsiooni salvestamisest - see on eelmise plokkide kulgemisest viimase ploki asukoht. Seejärel täpsustame, mitu plokki panna, sõltuvalt sellest, kas läheme mööda hoone pikkust või laiust.

Ehitamise etapp sisaldub samas plokis - see jätkub seni, kuni oleme kõik plokid paika pannud. mc.setBlock asetab näidatud koordinaatidele ühe ploki, seejärel suurendab ühte neist koordinaatidest sõltuvalt suunast, kuhu me paneme. Mõju on see, et enne nurka pööramist ja ristkülikus jätkamist kuni raja lõpetamiseni pannakse klotsid mööda seina.

kas saate aurukingi eest raha tagasi maksta

Koodi lõplik versioon on veidi rohkem kaasatud, lisades igale seinale aknad. Aknad on dünaamiliselt nii suured, et need on pool seina pikkust ja keskel. Samuti registreeritakse ukse asukoht; see lisatakse, kui seinad on ehitatud. Kursusi juhitakse funktsiooni build_walls abil, mis kordab funktsiooni build_course iga plokkide kursuse jaoks, kuni see saavutab lõpliku kõrguse.

Võite isegi proovida oma maja ehitada ookeani või õhku - selleks vajutage kaks korda tühikuklahvi, et lennata, seejärel vajutage uuesti, et enne stsenaariumi käivitamist ennast tõsta. Muutke wall_block ja roof_block muutujaid, et näha, mis juhtub, kui loote seinad või katus kullast või laavast. Oma plokid saate lisada täieliku loendi abil siin ja seostatud muutuja skripti lisamine. Keerulisemad modifikatsioonid võivad hõlmata struktuurile mitme korruse lisamist, kui kõrgusmuutuja on seatud piisavalt suurele väärtusele. Uurige välja, kuidas lisada näiteks tornitükke ja teil on Minecrafti lossi looming.

Need näpunäited võivad tunduda triviaalsed, kuid olen programmeerinud professionaalselt üle 20 aasta ja mul on endiselt põnevus, kui koodijupp töötab ettenähtud viisil. Kui te pole kunagi varem programmeerinud, siis loodan, et annate sellele võimaluse - ja kui teil on majapidamises Minecrafti fänn, soovitan neil lahti lasta koodil ja vaadata, kuhu see viib. Minecraft Pi ressursside lingid leiate aadressilt kevpartner.co.uk/programming .

Huvitavad Artiklid

Toimetaja Valik

Kuidas Snapchatis märguandeid lubada
Kuidas Snapchatis märguandeid lubada
Kui olete üks 280 miljonist aktiivsest Snapchati kasutajast, kellele meeldib sisu vahetada teiste Snapchatteritega, võiksite teada, kuidas teateid lubada. Snapchati märguanded on kasulikud näiteks selleks, et teada saada, millal olete
Kolm muljetavaldavat alternatiivi Photo Viewerile Windows 10-s
Kolm muljetavaldavat alternatiivi Photo Viewerile Windows 10-s
Soovin teile näidata kolme muljetavaldavat alternatiivrakendust, mis võivad asendada Windowsi fotovaate, et saaksite tagasi funktsionaalsuse ja kasutatavuse.
Luba esitlusrežiim Windows 10-s
Luba esitlusrežiim Windows 10-s
Windows 10 esitlusrežiim on loodud kaasaskantavate seadmete (nt sülearvutid) kasutajate abistamiseks. Kui see on lubatud, jääb teie arvuti ärkvel.
Kuidas kasutada Black Desert Online'is oskuspunkte
Kuidas kasutada Black Desert Online'is oskuspunkte
Black Desert Online on massiline mitme mängijaga võrgurollimäng (MMORPG), millel on palju erinevaid klasse. Nagu enamiku MMORPG-de puhul, on ka neil klassidel erinevad oskused. Mängu esmakordsel mängimisel peate saavutama taseme ja
Kuidas peatada blokeeritud numbrite kõnepostist lahkumine Androidis
Kuidas peatada blokeeritud numbrite kõnepostist lahkumine Androidis
See, kuidas kedagi blokeerida, et ta ei saaks kõneposti jätta, sõltub teie operaatorist. Tutvustame suuremaid operaatoreid ja isegi näitame teile, kuidas see Google Voice'i numbri abil toimima panna.
Need on OneDrive'i uued funktsioonid, mis saadi 2020. aasta augustis
Need on OneDrive'i uued funktsioonid, mis saadi 2020. aasta augustis
Microsoft paljastas, milliseid funktsioone on ettevõte lisanud OneDrive'i, oma pilvemälu ja sünkroonimisteenusesse. Teates mainitakse augustis rakendatud tegevuskavakirjeid ning mõnda muud muudatust Office'i veebirakendustes. Mis on OneDrive OneDrive on Microsofti loodud veebidokumentide salvestamise lahendus, mis on komplektis
Failide püsivalt kustutamine Windows 10-s (prügikasti möödaviik)
Failide püsivalt kustutamine Windows 10-s (prügikasti möödaviik)
Faile saate kustutada jäädavalt, möödudes Windows 10 prügikastist. Failid ja kaustad kustutatakse kohe.