Huvud Streamingtjänster Hacka Minecraft på Raspberry Pi

Hacka Minecraft på Raspberry Pi



Raspberry Pi 2 är en överraskande kapabel enhet med tanke på dess pris under 30 £. Den levereras med en förinstallerad version av Minecraft tillsammans med ett API som låter dig skriva kod för att köras i den virtuella världen. Du gör detta i Python, vilket är enkelt att lära sig. Kombinationen av Pi, Python och Minecraft ger ett utmärkt tillfälle att börja utforska möjligheterna att programmera. Och spänningen att se ett hus bygga sig på ett virtuellt landskap är inte bara för barn.

hur man överför filer från en Google-enhet till en annan

Skript i Minecraft

Minecraft är ett öppet sandlådesspel som inte har en plotlinje att följa. Det beskrivs ibland som virtuell Lego, eftersom spelaren kan bygga alla typer av strukturer med hjälp av blocken till deras förfogande. Den version som medföljer Raspberry Pi har en begränsad funktionssats som passar dess pedagogiska roll - så att du inte behöver oroa dig för att jagas till exempel. Att interagera med den här världen kräver ingen speciell installation, bara en ny version av Raspbian OS plus en programmeringsmiljö. Jag väljer Geany, som du kan installera genom att öppna LXTerminal och skriva:

sudo apt-get install geany

Låt oss börja med att skapa ett manus för att bygga ett hus framför spelaren - men snarare än att bara slå ett på plats, kommer vi att animera det. Vi kommer också att bygga in olika konfigurerbara inställningar, som gör det möjligt för spelaren att experimentera med olika dimensioner och material. Detta kommer också att göra programmet modulärt, så det kan användas som grund för att skapa mer sofistikerade brunnar.

För att få koden att fungera, ladda den i Geany, starta Minecraft och skapa en ny värld. Tryck på Tab-tangenten för att släppa markören från Minecraft-fönstret och klicka på kugghjulsikonen i Geany (eller tryck på F5) för att starta skriptet. Du bör se ett hus magiskt montera sig själv. Om du inte gör det kan du försöka vända dig - det kan ligga bakom dig! Du kan se manuset i aktion här . Så hur fungerar manuset? Först öppnar den en länk till Minecraft:

importera mcpi.minecraft som minecraft, tid mc = minecraft.Minecraft.create ()

I Python är det viktigt att vara uppmärksam på indrag, eftersom det är så koden delas in i block. I det här fallet ligger båda linjerna i linje med vänster marginal: den första raden importerar Minecraft och Time-biblioteken och den andra skapar ett Minecraft-objekt som vi kan använda hela tiden. De kommande 25 raderna ställer in några variabler för de block vi ska använda så att vi kan hänvisa till dem som, säg, wood_planks snarare än med deras block-ID (5, i det här fallet). Vi anger sedan vilka av dessa block som kommer att användas för väggarna, vilka för taket och så vidare. Vi kan enkelt ändra husets konstruktion helt genom att t.ex. byta tegelväggar mot kullersten. Slutligen ställer vi in ​​önskad bostads bredd, längd och höjd.

Vi kallar nu Minecraft-funktionen mc.player.getTilePos () för att lokalisera spelaren i landskapet, och värdena som kommer tillbaka används sedan för att skapa två variabler, vänster och botten, för att beskriva var det första hörnet av bostaden kommer att vara .

Därefter matchar manuskriptets struktur Minecraft-processen för att manuellt bygga ett hus. Vi börjar med att rensa ett utrymme så att om spelaren väljer att bygga huset inuti, till exempel ett berg, kommer vardagsrummet inte att vara massiv sten. Här är kodblocket - funktionen i Python - som gör detta:

def clear_house (kärnkraft):
om kärnkraft == Sant:
blast_zone = 20
annan:
blast_zone = 0
mc.setBlocks (left-blast_zone, player_
mark, botten + blast_zon, vänster + bredd + blast_
zon, spelarplats + höjd + spräng_
zone + 10, bottom-length-blast_zone, air_block)

När vi kallar clear_house skickar vi in ​​parametern nukleär. Det har värdet sant eller falskt. Du kan försöka ringa det med True för att rensa en större volym runt målområdet eller ringa det med False för att begränsa avståndet till husets inre dimensioner. I Minecraft används mc.setBlocks-funktionen för att skapa en kub av block genom att ge den koordinaterna, i tre dimensioner, av motsatta hörn följt av den blocktyp du vill använda. I det här fallet rensar vi ett utrymme, så vi använder luft.

När vi har rensat utrymmet är det dags att gå vidare till konstruktion. Var och en av dessa byggsteg sker i sin egen funktion. I slutet av skriptet ser du en funktion som heter main (), som styr programflödet genom att anropa varje byggnadsfas i tur och ordning. Genom att namnge våra funktioner på ett förnuftigt sätt och ringa dem från main () är det lätt att förstå vad programmet gör:

def huvud ():
clear_house (Falskt)
start_pos = [vänster, botten, spelare_
jord]
build_floor (start_pos)
kurs = build_walls (start_pos)
add_door (dörrposition)
time.sleep (fördröjning * 10)
build_roof (start_pos, kurs)

Nästa funktion som kallas main () bygger golvet - det här använder mc. setBlocks igen för att hugga ut en foundation (för konstnärlig effekt) och lägg sedan till en kub av golvplattor med ett djup på ett block för att skapa ett solidt golv i vårt hus.

varför fortsätter min minecraft att krascha

Bygga väggarna

Funktionen build_walls är kärnan i programmet. Det mest effektiva sättet att skapa skalet på ett hus skulle vara att slå ner en solid kub av tegelstenar och sedan använda clear_house för att hugga ut interiören. Vi vill dock att huset ska se ut att bygga sig själv, så vi måste placera block var för sig, en efter en. Här är en förenklad version av väggbyggnadskoden:

def build_course (start_pos, riktning,
kurs):
block = 1
current_horiz = start_pos [0]
current_vert = start_pos [1]

om riktning == uppåt eller
riktning == ner:
number_of_blocks = längd
annan:
number_of_blocks = bredd

medan blockmc.setBlock (nuvarande_horiz, spelare_
mark + kurs, nuvarande_vert, wall_block)
om riktning == upp:
current_vert- = 1
elif riktning == ner:
current_vert + = 1
elif riktning == höger:
current_horiz + = 1
annan:

current_horiz- = 1
block = block + 1 # flytta till nästa block
time.sleep (fördröjning)

Vi börjar med att lagra startpositionen - detta kommer att vara positionen för det sista blocket som lagts från föregående block. Vi anger sedan hur många block som ska läggas, beroende på om vi går längs byggnadens längd eller dess bredd.

Byggnadsfasen finns inom stundblocket - detta fortsätter att gå tills vi har lagt alla block. mc.setBlock placerar ett enda block vid de visade koordinaterna och ökar sedan en av dessa koordinater beroende på i vilken riktning vi lägger. Effekten är att block läggs längs en vägg innan du vrider ett hörn och fortsätter i en rektangel tills banan är klar.

hur man tar bort alla gillanden på facebook

Den slutliga versionen av koden är lite mer involverad och lägger till fönster i varje vägg. Fönstren är dynamiskt dimensionerade så att de är halva längden på väggen och centrerade. Den registrerar också positionen för dörren; det läggs till när väggarna är byggda. Kurser styrs från build_walls-funktionen, som upprepar build_course-funktionen för varje blockkurs tills den når den slutliga höjden.

Du kan till och med försöka bygga ditt hus i havet eller i luften - gör detta genom att dubbeltrycka på mellanslagstangenten för att flyga, tryck sedan igen för att höja dig själv innan du kör manuset. Ändra variablerna wall_block och roof_block för att se vad som händer om du skapar väggarna eller taket av guld eller faktiskt lava. Du kan lägga till dina egna block genom att läsa hela listan här och lägga till tillhörande variabel i skriptet. Mer utmanande ändringar kan inkludera att lägga till flera våningar i strukturen om höjdvariabeln är inställd på ett tillräckligt stort värde. Ta reda på hur du exempelvis lägger till torn, så har du ett Minecraft-slott.

Dessa tweaks kan låta triviala, men jag har programmerat professionellt i mer än 20 år och jag får fortfarande en spänning när ett kodavsnitt fungerar som avsett. Om du aldrig har programmerat förut, hoppas jag att du ger det en chans - och om du har en Minecraft-fläkt i hushållet, föreslår jag att du släpper dem på koden och ser vart den tar dem. Du hittar länkar till Minecraft Pi-resurser på kevpartner.co.uk/programmering .

Intressanta Artiklar

Redaktionen

Hur inaktiverar du Malwarebytes
Hur inaktiverar du Malwarebytes
Det finns inget sådant som ett perfekt antivirus- eller antimalwareprogram. Målet med denna programvara är att skydda dig. Genom att göra det kan det ibland upptäcka ett ofarligt program som potentiellt oönskad programvara (känd som falskt positivt),
Så här flyttar du offline-kartor till en annan enhet i Windows 10
Så här flyttar du offline-kartor till en annan enhet i Windows 10
Moderna Windows-versioner har en inbyggd Maps-app som drivs av Bing Maps. Så här flyttar du offline-kartor i Windows 10.
Hur man fixar en frusen dator
Hur man fixar en frusen dator
Du kan vanligtvis fixa en frusen dator med en enkel omstart. Men om det inte fungerar, prova den här listan med tips för att få din dator att fungera igen.
Hur man ändrar språket i MIUI
Hur man ändrar språket i MIUI
Även om det är baserat på Android-systemet, skiljer sig Xiaomis varumärke MIUI från sin moderplattform i viss utsträckning. Designen på dess användargränssnitt påminner något mer om iOS än Android, vilket kan förvirra nytt
Växla mellan den gamla och nya Start-menyn i Windows 10 build 9926
Växla mellan den gamla och nya Start-menyn i Windows 10 build 9926
Få den gamla storleksändrade Start-menyn från Windows 10 build 9879 i Windows 10 build 9926 med en enkel registerjustering
Med Skype 8.57 kan du ta bort kontakter direkt från kontaktlistan
Med Skype 8.57 kan du ta bort kontakter direkt från kontaktlistan
Skype för Windows, Mac, Linux och webb 8.57.0.116 börjar lanseras den 2 mars 2020. Det släpps gradvis under nästa vecka. Den har ett par efterlängtade funktioner. Med Skype 8.57 kan du äntligen radera en kontakt direkt från kontaktlistan. På fliken Kontakter håller du ned eller högerklickar på kontakten du har
Rise of the Tomb Raider-recension: PS4 20 års firande nu
Rise of the Tomb Raider-recension: PS4 20 års firande nu
Uppdatering: För mer information om tilläggen till Rise of the Tomb Raider, läs vår praktiska titt på att utforska Croft Manor i VR. Lara Croft har kommit långt sedan hennes första framträdande 1996, men komplexet