Hoofd Streamingdiensten Minecraft hacken op de Raspberry Pi

Minecraft hacken op de Raspberry Pi



De Raspberry Pi 2 is een verrassend capabel apparaat, gezien de prijs van minder dan £ 30. Het wordt geleverd met een vooraf geïnstalleerde versie van Minecraft, samen met een API waarmee je code kunt schrijven die in de virtuele wereld kan worden uitgevoerd. Dit doe je in Python, wat eenvoudig te leren is. De combinatie van de Pi, Python en Minecraft biedt een geweldige kans om de mogelijkheden van programmeren te verkennen. En de sensatie van het zien bouwen van een huis op een virtueel landschap is ook niet alleen voor kinderen.

hoe verander je je gebruikersnaam op twitch

Scripten in Minecraft

Minecraft is een open sandbox-game die geen plotlijn heeft om te volgen. Het wordt soms beschreven als virtuele Lego, omdat de speler elk soort structuur kan bouwen met de blokken die hij tot zijn beschikking heeft. De versie die bij de Raspberry Pi wordt geleverd, heeft een beperkte functieset die geschikt is voor zijn educatieve rol - dus u hoeft zich geen zorgen te maken dat u bijvoorbeeld door zombies wordt achtervolgd. Interactie met deze wereld vereist geen speciale setup, alleen een recente build van het Raspbian OS plus een programmeeromgeving. Ik zou kiezen voor Geany, die je kunt installeren door LXTerminal te openen en te typen:

sudo apt-get install geany

Laten we beginnen met het maken van een script voor het bouwen van een huis voor de speler - maar in plaats van er gewoon een op zijn plaats te slaan, gaan we het animeren. We gaan ook verschillende configureerbare instellingen inbouwen, waardoor de speler kan experimenteren met verschillende afmetingen en materialen. Dit maakt het programma ook modulair, zodat het kan worden gebruikt als basis voor het maken van meer geavanceerde wellings.

Om de code te laten werken, laadt u deze in Geany en start u Minecraft en creëert u een nieuwe wereld. Druk op de Tab-toets om de cursor uit het Minecraft-venster te halen en klik op het tandwielpictogram in Geany (of druk op F5) om het script te starten. Je zou een huis op magische wijze moeten zien samenkomen. Als je dat niet doet, probeer dan om te draaien - het kan achter je zijn! U kunt het script in actie zien hier . Dus hoe werkt het script? Nou, eerst opent het een link naar Minecraft:

importeer mcpi.minecraft als minecraft, tijd mc=minecraft.Minecraft.create()

In Python is het belangrijk om aandacht te besteden aan inspringen, omdat code zo is verdeeld in blokken. In dit geval liggen beide regels gelijk met de linkermarge: de eerste regel importeert de Minecraft- en Time-bibliotheken en de tweede maakt een Minecraft-object dat we overal kunnen gebruiken. De volgende 25 regels stellen een paar variabelen in voor de blokken die we gaan gebruiken, zodat we ernaar kunnen verwijzen als bijvoorbeeld wood_planks in plaats van naar hun blok-ID (5, in dit geval). Vervolgens geven we aan welke van deze blokken voor de wanden worden gebruikt, welke voor het dak enzovoort. We kunnen de constructie van het huis eenvoudig helemaal veranderen door bijvoorbeeld bakstenen muren te ruilen voor kasseien. Tot slot bepalen we de breedte, lengte en hoogte van onze gewenste woning.

We noemen nu de Minecraft-functie mc.player.getTilePos() om de speler in het landschap te lokaliseren, en de waarden die terugkomen, worden vervolgens gebruikt om twee variabelen te creëren, links en onderaan, om te beschrijven waar de eerste hoek van de woning zal zijn .

Daarna komt de structuur van het script overeen met het Minecraft-proces van het handmatig bouwen van een huis. We beginnen met het vrijmaken van een ruimte, zodat als de speler ervoor kiest om het huis in, bijvoorbeeld een berg, te bouwen, de woonruimte niet van massief steen zal zijn. Hier is het codeblok - de functie in Python - die dit doet:

def clear_house(nucleair):
als nucleair== Waar:
blast_zone=20
anders:
blast_zone=0
mc.setBlocks(left-blast_zone,player_
grond, onder+blast_zone,links+breedte+blast_
zone, speler_grond+hoogte+blast_
zone+10,bottom-length-blast_zone,air_block)

Als we clear_house aanroepen, geven we de parameter nucleair door. Het heeft de waarde True of False. Je kunt proberen het met True te noemen om een ​​groter volume rond het doelgebied te verwijderen, of het met False om de speling te beperken tot de interne afmetingen van het huis. In Minecraft wordt de functie mc.setBlocks gebruikt om een ​​kubus van blokken te maken door de coördinaten, in drie dimensies, van tegenovergestelde hoeken door te geven, gevolgd door het bloktype dat u wilt gebruiken. In dit geval maken we een ruimte vrij, dus gebruiken we lucht.

Zodra we de ruimte hebben vrijgemaakt, is het tijd om verder te gaan met de bouw. Elk van deze bouwfasen vindt plaats in zijn eigen functie. Aan het einde van het script ziet u een functie genaamd main(), die de programmastroom bestuurt door elke bouwfase om de beurt aan te roepen. Door onze functies verstandig een naam te geven en ze aan te roepen vanuit main(), is het gemakkelijk te begrijpen wat het programma doet:

def hoofd():
clear_house(False)
start_pos=[links,onder,speler_
grond]
build_floor(start_pos)
course=build_walls(start_pos)
add_door(door_position)
tijd.slaap(vertraging*10)
build_roof(start_pos, cursus)

De volgende functie die in main() wordt aangeroepen, bouwt de verdieping op - deze gebruikt mc. setBlocks opnieuw om een ​​fundering te maken (voor artistiek effect) en voeg vervolgens een kubus vloertegels toe met een diepte van één blok om een ​​stevige vloer in ons huis te creëren.

hoe ping in lol . weer te geven

De muren bouwen

De build_walls-functie is het hart van het programma. De meest efficiënte manier om de schil van een huis te maken, is door een stevige kubus van bakstenen neer te slaan en vervolgens clear_house te gebruiken om het interieur uit te houwen. We willen echter dat het huis zichzelf lijkt te bouwen, dus we moeten de blokken afzonderlijk, de een na de ander, plaatsen. Hier is een vereenvoudigde versie van de muurbouwcode:

def build_course(start_pos, richting,
Cursus):
blokken=1
current_horiz=start_pos[0]
current_vert=start_pos[1]

if direction==omhoog of
richting==naar beneden:
number_of_blocks=lengte
anders:
number_of_blocks=breedte

terwijl blokkeertmc.setBlock(current_horiz,player_
grond+koers,current_vert,wall_block)
if richting== omhoog:
huidige_vert-=1
elif richting==naar beneden:
current_vert+=1
elif richting==rechts:
current_horiz+=1
anders:

current_horiz-=1
blocks=blocks+1 # ga naar het volgende blok
tijd.slaap(vertraging)

We beginnen met het opslaan van de startpositie - dit is de positie van het laatste blok dat is gelegd uit de vorige reeks blokken. Vervolgens specificeren we hoeveel blokken we moeten leggen, afhankelijk van of we langs de lengte van het gebouw of de breedte gaan.

De bouwfase bevindt zich in het while-blok - dit gaat door totdat we alle blokken hebben gelegd. mc.setBlock plaatst een enkel blok op de getoonde coördinaten en verhoogt vervolgens een van die coördinaten, afhankelijk van de richting waarin we leggen. Het effect is dat blokken langs een muur worden gelegd voordat ze een hoek omslaan en in een rechthoek doorgaan totdat de baan is voltooid.

hoe de naam league of legends te veranderen

De definitieve versie van de code is iets ingewikkelder en voegt vensters toe aan elke muur. De vensters hebben een dynamisch formaat, zodat ze half zo lang zijn als de muur en gecentreerd zijn. Het registreert ook de positie voor de deur; het wordt toegevoegd zodra de muren zijn gebouwd. Cursussen worden bestuurd vanuit de functie build_walls, die de functie build_course herhaalt voor elke cursus met blokken totdat deze de uiteindelijke hoogte bereikt.

Je kunt zelfs proberen je huis in de oceaan of in de lucht te bouwen - doe dit door twee keer op de spatiebalk te drukken om te vliegen, en druk nogmaals om jezelf op te heffen voordat je het script uitvoert. Wijzig de variabelen wall_block en roof_block om te zien wat er gebeurt als je de muren of het dak van goud of, inderdaad, lava maakt. U kunt uw eigen blokken toevoegen door de volledige lijst te raadplegen hier en het toevoegen van de bijbehorende variabele aan het script. Meer uitdagende aanpassingen kunnen zijn het toevoegen van meerdere verdiepingen aan de structuur als de hoogtevariabele is ingesteld op een waarde die groot genoeg is. Zoek uit hoe je bijvoorbeeld torentjes kunt toevoegen en je hebt de ingrediënten voor een Minecraft-kasteel.

Deze tweaks klinken misschien triviaal, maar ik programmeer al meer dan 20 jaar professioneel en ik krijg nog steeds een kick als een codefragment werkt zoals bedoeld. Als je nog nooit eerder hebt geprogrammeerd, hoop ik dat je het eens zult proberen - en als je een Minecraft-fan in huis hebt, raad ik aan om ze de code los te laten en te kijken waar ze naartoe gaan. U vindt links naar Minecraft Pi-bronnen op kevpartner.co.uk/programmering .

Interessante Artikelen

Editor'S Choice

Vivaldi Browser ontvangt de Startpage Search Engine-optie
Vivaldi Browser ontvangt de Startpage Search Engine-optie
Vivaldi en Startpage hebben een overeenkomst gesloten, zodat Vivaldi-gebruikers deze privacygerichte engine nu kunnen gebruiken als zoekoptie in de browser. Het wordt standaard opgenomen en overal beschikbaar, inclusief het speciale zoekvak in de gebruikersinterface. De officiële aankondiging luidt: Startpage is 's werelds eerste privézoekmachine, opgericht in
Schakel ballonmeldingen in Windows 10 in en schakel toasts uit
Schakel ballonmeldingen in Windows 10 in en schakel toasts uit
Hoe u ballonmeldingen weer kunt laten werken in Windows 10 in plaats van nieuwe toastmeldingen met een eenvoudige registeraanpassing.
Poser Pro-recensie
Poser Pro-recensie
Met behulp van een 3D-modelleur is het relatief eenvoudig om een ​​geloofwaardige scène te maken, maar om deze tot leven te brengen, moet u deze vullen met cijfers, wat gemakkelijker gezegd dan gedaan is. Sterker nog, het creëren van een geloofwaardig menselijk model, vooral
Zoek het Afmelden Log in Windows 10
Zoek het Afmelden Log in Windows 10
Windows 10 kan het uitzendproces volgen en een aantal gebeurtenissen in het systeemlogboek schrijven. In dit artikel zullen we zien hoe u het uitloglogboek kunt vinden.
Foutcode 012 op Samsung-tv's oplossen
Foutcode 012 op Samsung-tv's oplossen
Als je een smart-tv van Samsung gebruikt, ben je waarschijnlijk gewend dat alles soepel verloopt. In zeldzame gevallen kunt u echter tegen problemen aanlopen. Een terugkerend probleem is de foutcode 012. Dit is een netwerkinterferentiefout, die u op de hoogte stelt
Windows op anderen vastzetten in Windows 10
Windows op anderen vastzetten in Windows 10
Windows 10 heeft veel functies, maar biedt niet altijd wat een gebruiker nodig heeft, zoals het vastzetten van vensters op andere. Natuurlijk, Windows 10 aanbiedingen
Hoe Facebook Marketplace op mobiel te gebruiken
Hoe Facebook Marketplace op mobiel te gebruiken
Facebook Marketplace biedt een eenvoudige en efficiënte manier om in contact te komen met kopers en verkopers in jouw regio, en is zelfs nog toegankelijker op mobiele apparaten. Als u nieuw bent op het platform of op zoek bent naar enkele tips om te stroomlijnen