Pagrindinis Srautinio Perdavimo Paslaugos „Minecraft“ įsilaužimas į „Raspberry Pi“

„Minecraft“ įsilaužimas į „Raspberry Pi“



„Raspberry Pi 2“ yra stebėtinai galintis įrenginys, turint omenyje, kad jo kaina nesiekia 30 svarų. Jame yra iš anksto įdiegta „Minecraft“ versija kartu su API, leidžiančia rašyti kodą, kad jis būtų paleistas virtualiame pasaulyje. Tai darote „Python“, kurį lengva išmokti. „Pi“, „Python“ ir „Minecraft“ derinys suteikia puikią galimybę pradėti tyrinėti programavimo galimybes. Jaudulys matant, kaip namas statosi ant virtualaus kraštovaizdžio, taip pat nėra skirtas tik vaikams.

kaip žiūrėti į kažkieno snapchat, jų nepridėjus

Scenarijai „Minecraft“

„Minecraft“ yra atviras smėlio dėžės žaidimas, kuriame nėra siužeto linijos. Kartais jis apibūdinamas kaip virtualus „Lego“, nes žaidėjas gali sukurti bet kokią struktūrą naudodamas turimus blokus. Versija kartu su „Raspberry Pi“ turi ribotą funkcijų rinkinį, tinkamą jo edukaciniam vaidmeniui - taigi jums nereikia jaudintis, kad, pavyzdžiui, jus persekioja zombiai. Norint bendrauti su šiuo pasauliu nereikia jokios specialios sąrankos, reikia tik neseniai sukurti „Raspbian“ OS ir programavimo aplinką. Aš pasirinkau „Geany“, kurį galite įdiegti atidarydami „LXTerminal“ ir įvesdami:

sudo apt-get install geany

Pradėkime nuo namo pastatymo priešais grotuvą scenarijaus kūrimo, bet ne tik užklosime jį į vietą, bet ir animuosime. Mes taip pat sukursime įvairius konfigūruojamus nustatymus, kurie leistuvui leis eksperimentuoti su skirtingais matmenimis ir medžiagomis. Tai taip pat padarys programą modulinę, todėl ją galima naudoti kaip pagrindą kuriant įmantresnius gręžinius.

Norėdami, kad kodas veiktų, įkelkite jį į „Geany“, tada paleiskite „Minecraft“ ir sukurkite naują pasaulį. Norėdami paleisti scenarijų, paspauskite klavišą Tab, kad atlaisvintumėte žymeklį iš „Minecraft“ lango, ir spustelėkite „Geany“ krumpliaračio piktogramą (arba paspauskite F5). Turėtumėte pamatyti, kaip namas stebuklingai susirenka. Jei to nepadarėte, pabandykite apsisukti - tai gali būti už jūsų! Galite pamatyti, kaip scenarijus veikia čia . Taigi kaip veikia scenarijus? Na, pirmiausia jis atveria nuorodą į „Minecraft“:

importuoti mcpi.minecraft kaip minecraft, laikas mc = minecraft.Minecraft.create ()

„Python“ svarbu atkreipti dėmesį į įtrauką, nes taip kodas yra padalintas į blokus. Šiuo atveju abi eilutės yra vienoje kairėje paraštėje: pirmoji eilutė importuoja „Minecraft“ ir „Time“ bibliotekas, o antroji sukuria „Minecraft“ objektą, kurį galėtume naudoti visam laikui. Kitos 25 eilutės nustato kelis kintamuosius blokams, kuriuos naudosime, kad galėtume juos nurodyti, tarkime, medienos lentomis, o ne pagal jų blokų ID (šiuo atveju - 5). Tada mes nurodome, kuris iš šių blokų bus naudojamas sienoms, kuris stogui ir pan. Mes galime visiškai pakeisti namo konstrukciją, pavyzdžiui, pakeisdami plytų sienas į akmenį. Galiausiai nustatėme norimo būsto plotį, ilgį ir aukštį.

Dabar mes vadiname „Minecraft“ funkciją „mc.player.getTilePos ()“, norėdami rasti grotuvą kraštovaizdyje, o grįžusios vertės naudojamos tada, kai sukuriami du kintamieji, kairieji ir apatiniai, apibūdinantys, kur bus pirmasis būsto kampas. .

Vėliau scenarijaus struktūra atitinka „Minecraft“ procesą rankiniu būdu statant namą. Pradedame išvalyti erdvę, kad jei žaidėjas nuspręstų pastatyti namą, tarkime, kalne, gyvenamasis plotas nebūtų vientisas akmuo. Štai kodo blokas - „Python“ funkcija - tai:

def clear_house (branduolinis):
jei branduolinė == Tiesa:
blast_zone = 20
Kitas:
blast_zone = 0
mc.setBlocks (left-blast_zone, player__
žemė, apačia + blast_zone, kairė + plotis + blast_
zona, žaidėjo aikštė + aukštis + sprogimas_
zona + 10, dugno ilgio sprogimo_zona, oro_blokas)

Kai iškviečiame clear_house, mes perduodame branduolio parametrą. Ji turi vertę „True“ arba „False“. Galite pabandyti jį paskambinti naudodami „True“, kad išvalytumėte didesnį tūrį aplink tikslinę sritį, arba paskambinkite su „False“, kad apsiribotumėte namo vidiniais matmenimis. „Minecraft“ funkcija „mc.setBlocks“ naudojama blokų kubui sukurti perduodant priešingų kampų koordinates trimis matmenimis, po kurių yra norimas naudoti bloko tipas. Šiuo atveju mes išvalome erdvę, todėl naudojame orą.

Kai išlaisvinsime erdvę, laikas pereiti prie statybų. Kiekvienas iš šių statybos etapų vyksta atskirai. Scenarijaus pabaigoje pamatysite funkciją, vadinamą main (), kuri valdo programos srautą, pakviesdama kiekvieną statybos etapą paeiliui. Protingai įvardijant mūsų funkcijas ir iškviečiant jas iš main (), lengva suprasti, ką daro programa:

def pagrindinis ():
clear_house (klaidinga)
pradžios_pozicija = [kairė, apačia, grotuvas_
žemė]
build_floor (start_pos)
kursas = build_walls (start_pos)
add_door (door_position)
laikas. miegoti (delsa * 10)
build_roof (start_pos, kursas)

Kita funkcija, vadinama main (), kuria grindis - tam naudojama mc. „setBlocks“ dar kartą iškirpkite pamatą (dėl meninio efekto), tada pridėkite vieno bloko gylio grindų plytelių kubą, kad mūsų namuose būtų tvirtos grindys.

židinio akmuo greičiausias būdas gauti dulkių

Sienų statyba

Funkcija „build_walls“ yra programos esmė. Efektyviausias būdas sukurti namo apvalkalą būtų užmušti tvirtą plytų kubą ir tada išpjauti interjerą „clear_house“. Tačiau norime, kad namas pasistatytų pats, todėl blokus turime dėti atskirai, vienas po kito. Štai supaprastinta sienų statybos kodo versija:

def build_course (pradžios_pozicija, kryptis,
kursas):
blokai = 1
current_horiz = start_pos [0]
current_vert = start_pos [1]

jei kryptis == aukštyn arba
kryptis == žemyn:
blokų skaičius = ilgis
Kitas:
blokų skaičius = plotis

o blokuojamc.setBlock (current_horiz, player__
žemė + kursas, srovės_vertė, sienų blokavimas)
jei kryptis == aukštyn:
current_vert- = 1
elifo kryptis == žemyn:
current_vert + + 1
elifo kryptis == dešinė:
current_horiz + = 1
Kitas:

current_horiz- = 1
blokai = blokai + 1 # pereiti į kitą bloką
laikas. miegas (delsa)

Mes pradedame nuo pradinės padėties išsaugojimo - tai bus paskutinio blokelio vieta, padėta iš ankstesnio blokų kurso. Tada mes nurodome, kiek blokų reikia pastatyti, atsižvelgiant į tai, ar einame išilgai pastato, ar jo pločio.

Statybos etapas yra blokelyje „while“ - tai tęsiasi tol, kol mes nutiestume visus blokus. „mc.setBlock“ uždeda vieną bloką parodytose koordinatėse, tada padidina vieną iš tų koordinačių, priklausomai nuo krypties, kuria klojame. Poveikis yra tas, kad blokai klojami palei sieną prieš pasukant kampu ir tęsiami stačiakampiu, kol kursas bus baigtas.

kaip padaryti LAN neatsuktą serverį

Galutinė kodo versija yra šiek tiek labiau įtraukta, prie kiekvienos sienos pridedant langus. Langai yra dinamiškai tokio dydžio, kad jie būtų pusės sienos ilgio ir centruoti. Taip pat užrašoma durų padėtis; jis pridedamas pastačius sienas. Kursai valdomi naudojant „build_walls“ funkciją, kuri pakartoja „build_course“ funkciją kiekvienam blokų kursui, kol jis pasiekia galutinį aukštį.

Jūs netgi galite pabandyti pastatyti savo namą vandenyne ar ore - atlikite tai dukart paspausdami tarpo klavišą, kad skristumėte, tada dar kartą paspauskite, kad pakeltumėte save prieš paleisdami scenarijų. Pakeiskite „wall_block“ ir „roof_block“ kintamuosius, kad sužinotumėte, kas nutiks, jei sienas ar stogą sukursite iš aukso arba iš tikrųjų lavos. Galite pridėti savo blokus, peržiūrėdami visą sąrašą čia ir pridedant susietą kintamąjį į scenarijų. Sudėtingesnės modifikacijos gali apimti kelių aukštų pridėjimą prie struktūros, jei aukščio kintamasis yra nustatytas pakankamai didele verte. Išsiaiškinkite, kaip pridėti, pavyzdžiui, bokštelius, ir turite „Minecraft“ pilies kūrinių.

Šie patobulinimai gali pasirodyti nereikšmingi, bet profesionaliai programuoju daugiau nei 20 metų ir vis tiek jaudinuosi, kai kodo fragmentas veikia kaip numatyta. Jei dar niekada nesi programavęs, tikiuosi, kad tai leisi - o jei tavo namuose yra „Minecraft“ ventiliatorius, siūlau palikti juos laisvu nuo kodo ir pamatyti, kur jis juos nuveda. Nuorodas į „Minecraft Pi“ išteklius rasite adresu kevpartner.co.uk/programming .

Įdomios Straipsniai

Redaktoriaus Pasirinkimas

Kodėl jūsų automobilio radijas neįsijungia
Kodėl jūsų automobilio radijas neįsijungia
Jei automobilio radijas neįsijungia, prieš įmesdami rankšluostį ir pirkdami pakaitalą turėtumėte patikrinti keletą dalykų.
Kodėl aš neturiu „Facebook“ prekyvietės?
Kodėl aš neturiu „Facebook“ prekyvietės?
Kyla sunkumų ieškant „Facebook Marketplace“ meniu parinkties „Facebook“ programose ir svetainėje? Štai kaip rasti piktogramą ir vėl ją susigrąžinti.
Kaip eksportuoti duomenis „Nike Run Club“
Kaip eksportuoti duomenis „Nike Run Club“
https://www.youtube.com/watch?v=EtYMrpgtk_A Jei naudojate „Nike Run Club“, jau žinosite, kad duomenų eksportavimas į „Strava“ ir kai kurias kitas stebėjimo programas yra daug daugiau problemų nei turėtų būti. Daugelis žmonių naudoja „Strava“
Kaip padaryti vartotoją administratoriumi sistemoje „Windows“.
Kaip padaryti vartotoją administratoriumi sistemoje „Windows“.
„Windows 10“ sukurtos naudotojų paskyros būna dviejų formų: standartinės ir administratoriaus (arba administratoriaus). Nors abiejų tipų naudotojų funkcijos išlieka tokios pačios, administratoriaus paskyros turės išplėstą prieigą prie tam tikrų parinkčių. Ši prieiga apima administratoriaus patvirtintus leidimus
WhatsApp Plus: kas tai yra ir kuo jis skiriasi nuo WhatsApp
WhatsApp Plus: kas tai yra ir kuo jis skiriasi nuo WhatsApp
„WhatsApp Plus“ yra neoficiali „WhatsApp“ alternatyva. Štai ką reikia žinoti prieš atsisiųsdami.
Kaip pataisyti „Vizio“ televizorių, kuris neprisijungia prie „Wi-Fi“.
Kaip pataisyti „Vizio“ televizorių, kuris neprisijungia prie „Wi-Fi“.
Kai jūsų išmanusis televizorius neprisijungia prie žiniatinklio, jis trikdo svarbiausią funkciją: vaizdo transliaciją. Štai keletas būdų, kaip tai ištaisyti.
Kaip leisti muziką iš mano bibliotekos „Google Home“.
Kaip leisti muziką iš mano bibliotekos „Google Home“.
Kadangi „Google Play“ muzika nebėra tinkama parinktis klausytis muzikos iš bibliotekos, gera alternatyva yra „Google Home“. Kadangi programa ir prijungti įrenginiai, ypač „Google Home“ išmanusis garsiakalbis, reaguoja į balso komandas. Su jūsų