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

Kaip išjungti „Aero Snap“ funkciją „Windows 8.1“, „Windows 8“ ir „Windows 7“
Kaip išjungti „Aero Snap“ funkciją „Windows 8.1“, „Windows 8“ ir „Windows 7“
Aprašoma, kaip išjungti „Aero Snap“ funkciją sistemose „Windows 8.1“, „Windows 8“ ir „Windows 7“
Kaip greitai paleisti į saugaus režimo komandų eilutę sistemose „Windows 8“ ir „Windows 8.1“
Kaip greitai paleisti į saugaus režimo komandų eilutę sistemose „Windows 8“ ir „Windows 8.1“
Aprašoma, kaip greitai paleisti „Windows 8“ ir „Windows 8.1“ į komandų eilutės režimą.
„Amazon“ neprisijungia prie manęs - ką daryti?
„Amazon“ neprisijungia prie manęs - ką daryti?
Daugelis žmonių skundžiasi dėl nuolatinio atsijungimo nuo „Amazon“ paskyrų. Ar esate vienas iš jų? Nesijaudinkite, šie klausimai dažniausiai yra laikini ir juos galima išspręsti. Problema gali būti ne „Amazon“ gale,
„WhatsApp for Windows Phone“ pašalinta iš „Microsoft Store“
„WhatsApp for Windows Phone“ pašalinta iš „Microsoft Store“
Jau kurį laiką žinome apie „Windows Phone“ palaikymo pabaigą, o pagrindinių programų, kurios buvo prieinamos „Windows Phone 8“ ir „Windows 10 Mobile“, kūrėjai pamažu pradėjo šalinti savo programas iš platformos. Dabar, kai „Windows Phone 8“ parduotuvė nustojo veikti ir įmonė baigėsi
Kas yra OGG failas?
Kas yra OGG failas?
OGG failas greičiausiai yra Ogg Vorbis suspaustas garso failas, naudojamas garso duomenims laikyti. Juos galima leisti su daugeliu muzikos grotuvų ir garso programinės įrangos. Kitus OGG failus naudoja grafikos programėlė.
Kaip archyvuoti arba išarchyvuoti „Instagram“ įrašus
Kaip archyvuoti arba išarchyvuoti „Instagram“ įrašus
Šių metų pradžioje „Instagram“ pristatė archyvą. Tai nesulaukė daug fanfarų ir praleido daug vartotojų, įskaitant mane. Tik tada, kai socialiniame tinkle aptariau pykčio metimo ir pykčio panaikinimo temą
Geriausias VPN JAV: geriausios srautinio perdavimo ir naršymo galimybės
Geriausias VPN JAV: geriausios srautinio perdavimo ir naršymo galimybės
Nesvarbu, ar nerimaujate dėl savo privatumo, ar ieškote didesnio saugumo, ar norite naudotis srautinio perdavimo paslaugomis užsienyje, gali padėti virtualus privatus tinklas (VPN). Prisijungę prie interneto per saugią VPN nuorodą į teikėjo serverį,