Legfontosabb Streaming Szolgáltatások A Minecraft feltörése a Raspberry Pi-n

A Minecraft feltörése a Raspberry Pi-n



A Raspberry Pi 2 meglepően képes eszköz, tekintve annak 30 font alatti árát. Jön egy előre telepített Minecraft verzió, valamint egy API, amely lehetővé teszi a virtuális világban futtatható kód írását. Ezt Pythonban teszi, amit egyszerűen megtanulhat. A Pi, a Python és a Minecraft kombinációja nagyszerű lehetőséget kínál a programozás lehetőségeinek feltárására. És az az izgalom, hogy egy ház virtuális tájon építkezik, nemcsak a gyerekeknek szól.

hogyan lehet letiltani a megjegyzéseket a facebook idővonalán

Szkriptek a Minecraftban

A Minecraft egy nyílt homokozós játék, amelynek nincs követendő cselekményvonala. Néha virtuális Lego-ként írják le, mivel a játékos bármilyen struktúrát felépíthet a rendelkezésére álló blokkok felhasználásával. A Raspberry Pi-hez mellékelt verzió korlátozott funkcióval rendelkezik, amely megfelel az oktatási szerepének - így nem kell aggódnia például a zombik üldözése miatt. A világgal való interakcióhoz nincs szükség különösebb beállításra, csak a Raspbian operációs rendszer legújabb verziója és egy programozási környezet. A Geany mellett döntök, amelyet telepíthet az LXTerminal megnyitásával és a gépeléssel:

sudo apt-get install geany

Kezdjük azzal, hogy létrehozunk egy forgatókönyvet, amellyel házat lehet építeni a lejátszó elé - de ahelyett, hogy csak a helyére csapnánk, inkább animáljuk. Különféle konfigurálható beállításokat is építünk, amelyek lehetővé teszik a lejátszó számára, hogy különböző méretekkel és anyagokkal kísérletezzen. Ezáltal a program is moduláris lesz, így a kifinomultabb kutak létrehozásának alapjául szolgálhat.

A kód működése érdekében töltse be a Geany-ba, majd indítsa el a Minecraft-ot, és hozzon létre egy új világot. Nyomja meg a Tab billentyűt a kurzor felszabadításához a Minecraft ablakból, majd kattintson a fogaskerék ikonra a Geany-ban (vagy nyomja meg az F5 billentyűt) a parancsfájl elindításához. Látnia kell, hogy egy ház varázslatosan összeáll. Ha nem, próbálja meg megfordulni - lehet, hogy mögötted van! Láthatja a szkriptet működés közben itt . Tehát hogyan működik a forgatókönyv? Nos, először megnyit egy linket a Minecraft-ra:

import mcpi.minecraft mint minecraft, idő mc = minecraft.Minecraft.create ()

A Pythonban fontos figyelni a behúzásra, mivel a kód így oszlik blokkokra. Ebben az esetben mindkét sor egybeesik a bal oldali margóval: az első sor a Minecraft és a Time könyvtárakat importálja, a második pedig egy Minecraft objektumot hoz létre, amelyet végig használhatunk. A következő 25 sor néhány változót állít be azokhoz a blokkokhoz, amelyeket használni fogunk, így mondhatjuk őket például mondjuk wood_planks-ként, nem pedig blokk-azonosítójuk alapján (ebben az esetben 5). Ezután jelezzük, hogy ezek közül a blokkok közül melyiket használják a falakhoz, melyiket a tetőhöz és így tovább. Könnyen megváltoztathatjuk a ház felépítését teljesen, ha például téglafalakat cserélünk macskakőre. Végül beállítottuk a kívánt lakás szélességét, hosszát és magasságát.

Most a mecplayer.getTilePos () nevű Minecraft függvényt hívjuk a játékos fekvő helyének megkeresésére, majd a visszatérő értékeket felhasználva két változót hozunk létre, balra és lent, hogy leírjuk, hol lesz a lakás első sarka .

Ezt követően a szkript felépítése megfelel a ház manuális építésének Minecraft folyamatának. Kezdjük egy szabad terület megtisztításával, hogy ha a játékos úgy dönt, hogy a házat építi, mondjuk egy hegyen belül, akkor a lakóterület nem lesz szilárd kő. Itt van a kódblokk - a Python funkciója -, amely ezt teszi:

def clear_house (nukleáris):
ha nukleáris == Igaz:
blast_zone = 20
más:
blast_zone = 0
mc.setBlocks (left-blast_zone, player_
föld, alsó + robbanás_ zóna, bal + szélesség + robbanás_
zóna, játékos_tér + magasság + robbanás_
zóna + 10, alsó-robbanás_ zóna, légblokk)

Amikor a clear_house-t hívjuk, beírjuk a nukleáris paramétert. Ennek értéke Igaz vagy Hamis. Megpróbálhatja True-val hívni, hogy nagyobb mennyiséget töröljön a célterületről, vagy Hamis-val hívhatja meg, hogy a távolságot a ház belső méreteire korlátozza. A Minecraftban az mc.setBlocks függvény segítségével blokkokból álló kockát hozhatunk létre azzal, hogy átadjuk a szemközti sarkok koordinátáit három dimenzióban, majd a használni kívánt blokkotípust. Ebben az esetben egy helyet szabadítunk fel, ezért levegőt használunk.

Miután megtisztítottuk a teret, itt az ideje, hogy folytassuk az építkezést. Ezen építési szakaszok mindegyike a maga funkciójában zajlik. A szkript végén meglátja a main () nevű függvényt, amely úgy vezérli a program folyamatát, hogy az építés minden fázisát egymás után hívja meg. Ha értelmesen megnevezzük a függvényeinket, és meghívjuk őket a main () -ból, könnyen megérthetjük, mit csinál a program:

def main ():
clear_house (hamis)
start_pos = [bal, alsó, játékos_
talaj]
build_floor (start_pos)
tanfolyam = build_falak (kezdő_pozíciók)
add_door (door_position)
time.sleep (késés * 10)
build_roof (start_pos, tanfolyam)

A következő (main) függvény meghívja a padlót - ez mc-t használ. A setBlocks ismét megalapozza az alapot (a művészi hatás érdekében), majd adjon hozzá egy kockát egy tömb mélységű padlólapból, hogy szilárd padlót hozzon létre a házunkban.

hogyan lehet forgatatlan hamachi szervert készíteni

A falak építése

A build_walls függvény a program középpontjában áll. A ház burkolatának létrehozásának leghatékonyabb módja az lenne, ha lecsap egy szilárd kockát a téglából, majd a clear_house segítségével faragja a belső teret. Azt akarjuk azonban, hogy a ház építse fel önmagát, ezért egyenként, egymás után kell elhelyeznünk a tömböket. Itt található a falépítési kód egyszerűsített változata:

def build_course (start_pos, irány,
tanfolyam):
blokkok = 1
current_horiz = start_pos [0]
current_vert = start_pos [1]

ha irány == felfelé vagy
irány == lefelé:
Blokkok száma = hossz
más:
blokkok száma = szélesség

míg blokkolmc.setBlock (current_horiz, player_
föld + pálya, jelenlegi_fordítás, fali blokk)
ha irány == fel:
current_vert- = 1
elif irány == lefelé:
current_vert + = 1
elif irány == jobbra:
current_horiz + = 1
más:

current_horiz- = 1
blokk = blokk + 1 # a következő blokkra lép
time.sleep (késés)

Kezdjük azzal, hogy eltároljuk a kiindulási helyzetet - ez lesz az utolsó blokk pozíciója az előző blokkok menetéből. Ezután megadjuk, hogy hány blokkot kell fektetni, attól függően, hogy az épület hossza vagy szélessége mentén haladunk-e.

Az építési szakasz a while blokkban található - ez addig folytatódik, amíg az összes blokkot le nem raktuk. Az mc.setBlock egyetlen blokkot helyez el a bemutatott koordinátákon, majd növeli az egyik koordinátát attól függően, hogy milyen irányba fektetünk. Ennek eredményeként a tömböket egy fal mentén fektetik le, mielőtt sarkon fordulnának, és téglalapban folytatnák a pálya befejezéséig.

a vizio tv kikapcsol, és nem szokott újra bekapcsolni

A kód végleges verziója kicsit jobban érintett, ablakokat ad hozzá minden falhoz. Az ablakok dinamikusan vannak méretezve úgy, hogy a fal fele felé esnek, és középre állnak. Az ajtó helyzetét is rögzíti; a falak megépítése után kerül hozzá. A pályákat a build_walls függvény vezérli, amely megismétli a build_course függvényt minden blokkfolyamon, amíg el nem éri a végső magasságot.

Megpróbálhatja akár az óceánban vagy a levegőben is felépíteni a házát - ezt úgy teheti meg, hogy kétszer megnyomja a szóközt, hogy repüljön, majd nyomja meg újra, hogy felemelje magát a forgatókönyv futtatása előtt. Módosítsa a wall_block és roof_block változót, hogy lássa, mi történik, ha a falakat vagy a tetőt aranyból vagy valóban lávából készíti. Hozzáadhatja saját blokkjait a teljes lista megtekintésével itt , és hozzáadja a társított változót a szkripthez. A nagyobb kihívásokkal járó módosítások tartalmazhatnak több emelet hozzáadását a szerkezethez, ha a magasságváltozó elég nagy értékre van állítva. Kidolgozza például, hogyan adhatunk tornyokat, és megkapja a Minecraft kastély adottságait.

Lehet, hogy ezek a trükkök triviálisnak tűnnek, de már több mint 20 éve programozom szakmailag, és még mindig izgalmat kapok, amikor a kódrészlet a szándék szerint működik. Ha még soha nem programoztál korábban, remélem, hogy megadod - és ha van egy Minecraft rajongó a háztartásban, azt javaslom, engedje el őket a kódon, és nézze meg, hová viszi őket. A Minecraft Pi-erőforrásokra mutató linkeket itt találja kevpartner.co.uk/programozás .

Érdekes Cikkek

Szerkesztő Választása

Hogyan lehet különbséget tenni az Airpods 1 és 2 között
Hogyan lehet különbséget tenni az Airpods 1 és 2 között
Az Apple fülhallgatóinak gen 1 és gen 2 modelljei közötti különbség kevés, de fontos. Itt vannak, és hogyan állapíthatja meg, hogy melyik AirPod-ja van.
Hogyan készítsünk normál külső merevlemezt NAS
Hogyan készítsünk normál külső merevlemezt NAS
A merevlemez-technológia mindig áramlik. Alig egy évtizeddel ezelőtt érdemes dicsekedni egy terabájtos belső merevlemez-meghajtóval. Manapság a külső merevlemezek akár 8 TB-ot is elérhetnek. Ennyi merevlemez-területtel
A Kikapcsolás megjelenítése idő után módosítása a Windows 10 rendszerben
A Kikapcsolás megjelenítése idő után módosítása a Windows 10 rendszerben
A kijelző kikapcsolásának időbeli megváltoztatása a Windows 10 rendszerben. Megadhatja, hogy a számítógép mennyi ideig marad inaktív, amíg a csatlakoztatott monitor nem működik
Miért ilyen lassú a ps4-em? [Minden szempont tisztázva]
Miért ilyen lassú a ps4-em? [Minden szempont tisztázva]
Az automatikus hirdetéseket nem lehet programozottan letiltani az oldalon, ezért itt vagyunk!
A Google Fotók importálása az Amazon Fotókba
A Google Fotók importálása az Amazon Fotókba
Számos oka van annak, hogy a Google Fotókat az Amazon Photos javára tegye. Ez utóbbi jobb lehetőségeket és fejlettebb funkciókat kínál. Ez különösen igaz, ha már feliratkozott az Amazon Prime / Amazon Drive szolgáltatásra, mivel a szolgáltatás érkezik
Töltse le a Kék mappa ikont a Windows 10 rendszerhez
Töltse le a Kék mappa ikont a Windows 10 rendszerhez
Kék mappa ikon a Windows 10 rendszerhez. A kék ikon a mappákhoz a Windows 10 rendszerben. Lásd a következő cikket: A Windows 10 mappaikonjait * .ico fájlra cserélheti. Szerző: Winaero. Töltse le a „Kék mappa ikont Windows 10-hez” Méret: 5,86 Kb AdvertismentPCRepair: Javítsa ki a Windows problémáit. Mindegyikük. Letöltési link: Kattintson ide a fájl letöltéséhez
Miért szar az Android? 9 ok [magyarázat]
Miért szar az Android? 9 ok [magyarázat]
Az automatikus hirdetéseket nem lehet programozottan letiltani az oldalon, ezért itt vagyunk!