Lerne Python und Elektronik mit Minecraft Pi Edition

Wollten Sie schon immer programmieren lernen, wussten aber nicht, wo Sie anfangen sollen? Erfahren Sie, wie Sie Minecraft auf dem Raspberry Pi mit Python und einfacher Elektronik steuern können.

Wollten Sie schon immer programmieren lernen, wussten aber nicht, wo Sie anfangen sollen?  Erfahren Sie, wie Sie Minecraft auf dem Raspberry Pi mit Python und einfacher Elektronik steuern können.
Werbung

Wollten Sie schon immer programmieren lernen, wussten aber nicht, wo Sie anfangen sollen? Erfahren Sie, wie Sie Minecraft auf dem Raspberry Pi mit Python und einfacher Elektronik steuern können. Hier ist das Endergebnis:

Sie benötigen für dieses Projekt ein Pi 2 oder neuer, und während Sie die meisten dieser Aufgaben über die Befehlszeile über Secure Shell (SSH) erledigen können, konzentriert sich dieses Tutorial auf die Programmierung direkt auf dem Pi.

Raspberry Pi 3 Modell B Motherboard Raspberry Pi 3 Modell B Motherboard Jetzt kaufen bei Amazon 29, 99 €

Neu bei Minecraft? Mach dir keine Sorgen - hier ist unser Minecraft Anfängerhandbuch Der (Nachzügler) Anfängerhandbuch zu Minecraft Der (Nachzügler) Anfängerhandbuch zu Minecraft Wenn du zu spät zur Party bist, keine Sorge - dieser ausführliche Anfängerleitfaden deckt dich ab. Weiterlesen .

Einführung in Minecraft Pi

Minecraft-Pi-Menü

Minecraft für den Raspberry Pi wurde zum Lernen und Basteln entwickelt (und es ist kostenlos). Es kommt mit einer Application Programming Interface (API), die eine Möglichkeit bietet, mit Code problemlos mit Minecraft zu kommunizieren. Es ist genial, zu lernen, wie man in Python programmiert, sowie mit der Elektronik anzufangen. Beginner's Electronics: 10 Fähigkeiten, die man kennen muss Anfänger-Elektronik: 10 Fähigkeiten, die man kennen muss Viele von uns haben noch nie einen Lötkolben berührt - aber Dinge machen können unglaublich lohnend. Hier sind zehn der grundlegenden DIY-Elektronik-Fähigkeiten, um Ihnen den Einstieg zu erleichtern. Weiterlesen .

Was ist Python?

Python ist eine Programmiersprache. Es wird interpretiert, das heißt, wenn Sie eine Python-Datei oder ein Programm ausführen, muss der Computer zuerst ein wenig Arbeit an der Datei erledigen. Die Nachteile sind, dass es im Vergleich zu kompilierten Sprachen als langsam angesehen werden kann.

Die Vorteile von interpretierten Sprachen sind die Geschwindigkeit der Codierung und ihre Freundlichkeit. Sie müssen dem Computer nicht mitteilen, welche Daten Sie speichern möchten, nur dass Sie etwas speichern möchten und der Computer wird herausfinden, was zu tun ist. Es gibt natürlich Ausnahmen, und das ist eine etwas vereinfachte Ansicht, aber das Programmieren sollte Spaß machen! Wenn Sie anfangen, sich in die komplexen technischen Details zu vertiefen, kann es ein bisschen mühsam werden.

Python unterscheidet zwischen Groß- und Kleinschreibung. Dies ist wichtig zu wissen, da Python Objekte nicht erkennt, selbst wenn sie korrekt geschrieben sind, wenn der Fall falsch ist. "Dosomething ()" funktioniert nicht, wenn die Methode eigentlich "DoSomething ()" heißt. Python verwendet auch Einrückung . Anderen Programmiersprachen ist es egal, wie viele Einrückungen Ihr Code hat, Python hingegen kümmert es. Einzüge werden verwendet, um Python mitzuteilen, wo Code gehört. Andere Sprachen verwenden "Curly Braces" ({}), um Code zu gruppieren - Python verwendet diese nicht. Python verwendet einen Hash (#) für Kommentare und Kommentare werden verwendet, um anderen Entwicklern oder Personen, die den Code betrachten, mitzuteilen, was ein bestimmter Teil tut oder warum er benötigt wird. Python ignoriert alles nach einem Hash.

Schließlich gibt es zwei Hauptversionen von Python - Python 2.7.x und Python 3.x. Es gibt einige Unterschiede zwischen den beiden (was sind die Unterschiede?). In diesem Tutorial wird Python 3 verwendet.

Ersteinrichtung

Vorausgesetzt, Ihr Pi ist bereits eingerichtet und läuft Raspbian Installieren eines Betriebssystems auf Ihrem Raspberry Pi So installieren Sie ein Betriebssystem auf Ihrem Raspberry Pi Hier erfahren Sie, wie Sie ein neues Betriebssystem installieren und auf Ihrem Pi laufen - und wie Sie Ihr perfektes Setup klonen für schnelle Disaster Recovery. Lesen Sie mehr, es ist nicht viel Ersteinrichtung erforderlich.

Öffnen Sie Terminal ( Menü> Zubehör> Terminal ) und führen Sie diesen Befehl aus. Es ist immer eine gute Übung, die Repository-Liste auf dem neuesten Stand zu halten und die neueste Liste der Programme herunterzuladen (die Programme werden nicht selbst heruntergeladen, dies hilft dem Pi zu wissen, welche Programme aufgerufen werden und wo sie zu finden sind).

sudo apt-get update 

Aktualisiere nun den Pi (das kann eine Weile dauern):

 sudo apt-get upgrade 

Python und Minecraft Pi sind bereits installiert, aber wenn Minecraft Pi aus irgendeinem Grund nicht installiert ist, ist es einfach zu installieren 5 Möglichkeiten zur Installation von Software auf Raspberry Pi 5 Möglichkeiten zur Installation von Software auf Raspberry Pi Um etwas mit einem Raspberry Pi zu tun, werden Sie Sie müssen wissen, wie Sie ein Betriebssystem installieren und welche Software darauf ausgeführt wird. Wenn Sie neu bei Linux sind, kann dies beängstigend sein. Weiterlesen :

 sudo apt-get install minecraft-pi 

Navigiere zu Dokumenten und erstelle einen neuen Ordner namens "Minecraft":

 cd Documents/ mkdir Minecraft 

Sie können den Inhalt dieses neuen Ordners anzeigen:

 ls 

Hier ist ein Tipp: Wenn Sie mit der Eingabe beginnen und die TAB-Taste drücken, versucht die Befehlszeile, die Anweisung für Sie automatisch zu vervollständigen.

Sie können den Pfad zum aktuellen Verzeichnis mithilfe von pwd untersuchen, das für "Arbeitsverzeichnis drucken" steht:

 pwd 

Starte Minecraft, indem du zu Menü> Spiele> Minecraft Pi gehst . Sie werden das Laufen brauchen, aber später darauf zurückkommen.

Öffnen Sie Python 3 über Menü> Programmierung> Python 3 (IDLE) . Dieses Programm bietet Ihnen die Möglichkeit, Python-Befehle auszuführen und Programme zu schreiben.

Jetzt könnten Sie hier Ihre Python-Befehle eingeben, aber das ist nicht sehr praktisch. Gehen Sie zu Datei> Neue Datei und dann zu Datei> Speichern und speichern Sie diese in dem Ordner, den Sie zuvor erstellt haben. ( Dokumente> Minecraft ). Nennen wir es " hello_world.py ". Sie müssen nicht die Erweiterung .py verwenden, diese wird automatisch hinzugefügt, aber es ist eine gute Übung.

Wenn du zurück zum Terminal wechselst und in den Minecraft-Ordner navigierst, solltest du die Datei sehen, die du gerade erstellt hast:

 cd Minecraft/ ls 

Sie können diese Datei wie folgt ausführen:

 python hello_world 

Beachten Sie, dass "Python" nur Kleinbuchstaben enthält. Dies muss vor dem Dateinamen sein, da es dem Pi mitteilt, dass die folgende Datei Python ist, also sollte es als solches ausgeführt werden.

Wechseln Sie zurück zum Python-Editor und geben Sie Folgendes ein:

 print "Hello, World!" 

Speichern Sie diese Datei und führen Sie sie erneut aus - Sie sollten nun "Hello, World!" In der Befehlszeile sehen - ordentlich! Der Befehl print teilt Python einfach mit, den folgenden Text in doppelten Anführungszeichen auszugeben. Das ist gut, aber nicht sehr nützlich für Minecraft, lasst es uns verlinken:

 from mcpi.minecraft import Minecraft mc = Minecraft.create() mc.postToChat("Hello, World!") 

Jetzt, wenn Sie diese Datei speichern und ausführen, sollten Sie "Hello, World!" Im Minecraft-Spiel sehen. Lass uns den Code aufschlüsseln:

 from mcpi.minecraft import Minecraft 

Diese Zeile teilt Python mit, dass Sie Code aus einer anderen Datei verwenden möchten. Diese mcpi.minecraft-Datei wurde entwickelt, um eine einfache Steuerung von Minecraft zu ermöglichen.

 mc = Minecraft.create() 

Diese Linie erzeugt ein Objekt namens "mc" (Minecraft). Sie müssen dies erstellen, um die Kommunikation mit dem Minecraft-Spiel zu ermöglichen - es reicht nicht, nur die Datei einzuschließen.

 mc.postToChat("Hello, World!") 

Schließlich sagt diese Zeile Minecraft, etwas Text in den Chat zu schreiben. Versuchen Sie, "Hello, World!" Zu etwas anderem zu ändern und zu sehen, was passiert, aber denken Sie daran, beide Anführungszeichen einzubeziehen. Wenn Sie Software-Probleme haben, sind dies einige häufige Python- und Minecraft Pi-Fehler:

  • AttributeError - dies ist ein Tippfehler, wie Pint oder Prnt anstelle von Drucken
  • NameError: Name 'Minecraft' ist nicht definiert - denken Sie daran, die Module zu importieren, die Sie benötigen
  • NameError: name 'true' ist nicht definiert - Python unterscheidet zwischen Groß- und Kleinschreibung, ändert sich in "True"
  • socket.error: [Errno 111] Verbindung verweigert - Stelle sicher, dass Minecraft läuft

Projekte

Jetzt, da du die Grundlagen von Python und Minecraft kennst, lass uns ein paar coole Projekte machen. Der gesamte Code kann von Github heruntergeladen werden.

Automatisierter Brückenbauer

Minecraft-Pi-Brückenbauer

Dieses Programm wird effektiv eine Brücke über Wasser bauen. Wenn der Spieler sich einem Gewässer nähert, wird das Programm mehrere Blöcke in Stein umwandeln. Da Minecraft ein Koordinatensystem verwendet, ist es sehr einfach, den Standort des Spielers zusammen mit der Art der Blöcke um den Spieler zu ermitteln. Minecraft Pi ist leicht limitiert, daher ist es nicht möglich, mehrere Blöcke in großen Mengen zu aktualisieren. Sie können dieses Verhalten jedoch leicht selbst programmieren.

Erstelle eine neue Datei ( Datei> Neue Datei ) und speichere sie als " bridge_builder.py ".

 from mcpi.minecraft import Minecraft mc = Minecraft.create() # create Minecraft Object while True: x, y, z = mc.player.getPos() # store player position # store the surrounding blocks a = mc.getBlock(x, y - 1, z + 1) b = mc.getBlock(x, y - 1, z - 1) c = mc.getBlock(x - 1, y - 1, z) d = mc.getBlock(x + 1, y - 1, z) if a == 8 or a == 9 or b == 8 or b == 9 or c == 8 or c == 9 or d == 8 or d == 9: # 8 or 9 is water. Set surrounding blocks on floor to a solid (stone) if water is found mc.setBlocks(x, y - 1, z, x + 1, y - 1, z + 1, 1) mc.setBlocks(x, y - 1, z, x - 1, y - 1, z - 1, 1) mc.setBlocks(x, y - 1, z, x - 1, y - 1, z + 1, 1) mc.setBlocks(x, y - 1, z, x + 1, y - 1, z - 1, 1) 

Beachten Sie, wie der y-Wert tatsächlich auf y - 1 schaut. Dies ist das Stockwerk. Wenn der Wert von y verwendet würde, würde das Skript nach Blöcken auf Kniestufe suchen - es würde nicht sehr gut funktionieren! Mc.getBlock () gibt die ID eines Blocks für die angegebenen Koordinaten zurück. Da x, y und z die Koordinaten des Spielers sind, können Sie von ihnen addieren oder subtrahieren, um Positionen um den Spieler zu erhalten. Sie müssen nicht die x-, y- und z-Werte verwenden, Sie können eine beliebige Zahl verwenden, jedoch wissen Sie möglicherweise nicht, wie sich dieser bestimmte Block auf den Player bezieht - es ist besser, Werte relativ zum Player zu verwenden. Führen Sie diese Datei über die Befehlszeile aus und sehen Sie, was passiert.

Sie sollten sehen, dass ein kleiner Bodenbereich zu einem Stein wird, sobald der Spieler ein Gewässer erreicht. Es ist nicht großartig - Sie können schnell genug laufen, um ein Problem zu verursachen. Sie könnten dies lösen, indem Sie eine größere Wassermenge in Land umwandeln. Der letzte Teil der mc.setBlocks () -Methode ist die Block-ID. Einer ist die Block-ID für Stein. Du könntest das zu Holz, Gras oder irgendetwas ändern. Wenn Sie möchten, können Sie dies ganz einfach in ein komplexes Design umwandeln - vielleicht eine Hängebrücke!

Super-Mining-Schaltfläche

Minecraft-Pi-Super-Mine

Dieses Beispiel wird den Bergbau kurz machen. Es besteht aus einem physischen Knopf, der 10 Würfel würfelt, wenn er gedrückt wird. Fangen wir mit dem Knopf an. Ähnlich wie bei den Tasten des Arduino benötigen Sie eine kleine Menge an Elektronik, die alle in einem grundlegenden Starter-Kit enthalten sein sollten. Was ist in Ihrem Arduino Starter Kit? [Arduino Beginners] Was ist in deinem Arduino Starter Kit? [Arduino Beginners] Angesichts einer Kiste voller elektronischer Komponenten ist es einfach, überwältigt zu werden. Hier finden Sie eine Anleitung zu genau dem, was Sie in Ihrem Kit finden. Weiterlesen :

  • 1 x Steckbrett
  • 1 x Momentschalter
  • 1 x 220 Ohm Widerstand
  • Weiblich> männlich springen Kabel
  • Male> Male Sprungkabel

Hier ist die Schaltung:

Pi-Knopf-Verbindung

Dieser Widerstand wird als Pulldown-Widerstand bezeichnet. Es hilft sicherzustellen, dass das, was der Pi denkt, dass der Knopf gedrückt wird, wirklich der Knopf ist, der gedrückt wird. Sie müssen dies nicht verwenden, es wird jedoch empfohlen, da Sie sonst sehr viel Rauschen und falsche Messwerte finden können.

Die Taste ist mit dem GPIO-Pin 14 (General Purpose Input Output) verbunden. Sie können einen beliebigen GPIO-Pin verwenden, sehen Sie sich jedoch zuerst die Pinbelegung an, da sie nicht alle vom Pi aus gesteuert werden können und zwischen den Modellen geringfügig variieren.

Jetzt, da die Schaltfläche verbunden ist, ist es Zeit, sie zu testen. Erstellen Sie eine neue Datei und speichern Sie sie als " button_test.py ". Fügen Sie diesen Code hinzu, speichern Sie ihn und führen Sie ihn im Terminal aus.

 import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) # tell the Pi what headers to use GPIO.setup(14, GPIO.IN) # tell the Pi this pin is an input while True: if GPIO.input(14) == True: # look for button press print "BUTTON WORKS!" # log result time.sleep(0.5) # wait 0.5 seconds 

Drücken Sie Strg + C, um das Skript zu stoppen. Wenn alles korrekt funktioniert, sollten Sie im Terminal "BUTTON WORKS!" Sehen. Beachten Sie, dass dieser Test wie das Minecraft-Modul die RPi.GPIO- und Zeitmodule verwendet. Dadurch kann der Pi auf die Hardware-Pins zugreifen und nützliche Zeitfunktionen bereitstellen.

Jetzt beenden wir den Rest des Codes. Erstellen Sie eine neue Datei namens " super_mine.py ". Hier ist der Code:

 import RPi.GPIO as GPIO import time from mcpi.minecraft import Minecraft mc = Minecraft.create() # create Minecraft Object GPIO.setmode(GPIO.BCM) # tell the Pi what headers to use GPIO.setup(14, GPIO.IN) # tell the Pi this pin is an input while True: if GPIO.input(14) == True: # look for button press x, y, z = mc.player.getPos() # read the player position mc.setBlocks(x, y, z, x + 10, y + 10, z + 10, 0) # mine 10 blocks mc.setBlocks(x, y, z, x - 10, y + 10, z - 10, 0) # mine 10 blocks time.sleep(0.5) # wait 0.5 seconds 

mc.player.getPos () gibt die aktuellen Koordinaten des Spielers zurück, die dann in x, y und z gespeichert werden. Die Methode setBlocks () weist Minecraft an, alle Blöcke zwischen Anfang und Ende mit dem folgenden Block zu füllen. Zero ist die Block-ID für Luft. Sie könnten dies in eine andere Block-ID ändern, um einen Bereich zu füllen. Sie können die Koordinaten auch auf +100 oder sogar +1000 Blöcke ändern, aber der Pi könnte anfangen zu kämpfen, wenn Sie zu verrückt werden. Beachten Sie, dass y + 10 für beide Zeilen gleich ist. Sie könnten dies zu y - 10 ändern, wenn Sie Blöcke unter der Erde entfernen wollten.

Teleportieren

Minecraft-Pi-Teleportieren

Eine andere einfache Verwendung für diese Schaltfläche könnte "Teleport" sein. Die Minecraft Pi Api bietet eine Möglichkeit, die Spielerposition festzulegen. Der folgende Code "teleportiert" den Player zu einem voreingestellten Ort:

 mc.player.setPos(0, 0, 0) 

Beachten Sie, dass seine Methode drei Parameter akzeptiert; x, y und z - so können Sie diese auf alles einstellen, um den Spieler sofort zu diesem Ort zu teleportieren.

Erstellen Sie eine Kopie der Datei super_mine ( Datei> Kopie speichern unter ) und ändern Sie sie, indem Sie das if durch Folgendes ersetzen:

 if GPIO.input(14) == True: # look for button press mc.player.setPos(0, 0, 0) # teleport player time.sleep(0.5) # wait 0.5 seconds 

Diese Datei sollte nun so aussehen:

 import RPi.GPIO as GPIO from mcpi.minecraft import Minecraft import time mc = Minecraft.create() # create Minecraft Object GPIO.setmode(GPIO.BCM) # tell the Pi what headers to use GPIO.setup(14, GPIO.IN) # tell the Pi this pin is an input while True: if GPIO.input(14) == True: # look for button press mc.player.setPos(0, 0, 0) # teleport player time.sleep(0.5) # wait 0.5 seconds 

Speichere es als " teleport.py " und starte es.

Sie können feststellen, dass der Player in einigen Blöcken stecken bleibt, wenn Sie dies verwenden. In diesem Fall müssen Sie die Koordinaten an ein bekanntes freies Feld anpassen (oben links auf dem Bildschirm wird Ihr aktueller Standort angezeigt).

Ein Haus bauen

Minecraft-Pi-Haus

Eine letzte Aufgabe für diesen Knopf ist, ein Haus zu bauen. Ähnlich wie bei dem oben beschriebenen Schnellabbau-Beispiel ersetzt dies einfach Blöcke, die den Spieler umgeben, um ein Haus zu bauen. Verschiedene Block-IDs werden für verschiedene Materialien (Fenster, Wände usw.) verwendet. Um Code leichter zu machen, wird ein fester Block erstellt, und dann wird das Innere entfernt (Block in Luft), wodurch eine hohle Hülle entsteht. Du kannst Extras wie ein Bett oder eine Tür hinzufügen, aber das Minecraft Pi-Projekt ist ein wenig unvollständig, und während diese Objekte funktionieren, wenn sie vom Spieler platziert werden, sind sie bei Verwendung von Python nicht brillant.

 from mcpi.minecraft import Minecraft import RPi.GPIO as GPIO import time mc = Minecraft.create() # create Minecraft Object GPIO.setmode(GPIO.BCM) # tell the Pi what headers to use GPIO.setup(14, GPIO.IN) # tell the Pi this pin is an input while True: if GPIO.input(14) == True: x, y, z = mc.player.getPos() mc.setBlocks(x + 2, y - 1, z + 2, x + 7, y + 3, z + 8, 5) # make shell mc.setBlocks(x + 3, y, z + 3, x + 6, y + 2, z + 7, 0) # remove inside mc.setBlocks(x + 2, y, z + 5, x + 2, y + 1, z + 5, 0) # make doorway mc.setBlocks(x + 4, y + 1, z + 8, x + 5, y + 1, z + 8, 102) # make window 1 mc.setBlocks(x + 4, y + 1, z + 2, x + 5, y + 1, z + 2, 102) # make window 2 mc.setBlocks(x + 7, y + 1, z + 4, x + 7, y + 1, z + 6, 102) # make window 3 

Speichern Sie dies als " house.py " und führen Sie es aus. Wenn alles in Ordnung ist, sollten Sie ein kleines Haus sehen (Sie müssen sich vielleicht umdrehen, um es zu finden). Es ist sehr einfach, eine Öffnung und einige Fenster. Theoretisch gibt es keine Begrenzung, wie groß oder komplex ein Gebäude sein könnte.

Mach ein Mini-Spiel

Minecraft-Pi-Lava-Spiel

Als nächstes machen wir ein Minispiel! Das wird ganz einfach, wenn der Spieler auf einen Sandblock tritt, wird er nach einer zufälligen Zeit zu Lava. Dies ist ein gutes Spiel zu machen, wie Sie Ihre eigenen Levels entwerfen oder ändern können, um die Dinge schwieriger zu machen. Sie werden die Schaltfläche für dieses Beispiel nicht benötigen.

Erstelle eine neue Datei und speichere sie als " mini_game.py ". Hier ist der Code:

 from mcpi.minecraft import Minecraft import random import time mc = Minecraft.create() # create Minecraft Object while True: x, y, z = mc.player.getPos() block_under_player = mc.getBlock(x, y - 1, z) if block_under_player == 12: # player standing on sand, start the timer random_time = random.uniform(0.1, 2.5) # generate random number time.sleep(random_time); # wait mc.setBlock(x, y - 1, z, 11) # turn it into lava 

Dieser Code ist ein guter Start für die Funktion random () : random.uniform (0.1, 2.5) generiert eine Zufallszahl zwischen 0.1 ( 1/10 Sekunde) und 2.5 (2 1/2 Sekunden). Durch Erhöhen dieser Zahlen wird das Spiel einfacher.

Versuch es! Stellen Sie sich auf einen Sandblock und es wird sich bald in Lava verwandeln. Dies könnte die Grundlage für ein komplexeres Spiel sein.

Mach ein weiteres Mini-Spiel

Minecraft-Pi-Mini-Spiel

Die Voraussetzung für dieses Spiel ist einfach - nicht auf dem Holzboden stehen, wenn die Zeit abläuft. Der Spieler wird in eine "Arena" teleportiert. Sie werden gezwungen, bis zum Beginn des Spiels still zu stehen. Sobald der Timer abgelaufen ist, wird der Boden in Wasser verwandelt. Der Spieler muss in der sicheren Zone (Diamantblöcke) stehen, um zu überleben. Jedes Level reduziert den Timer um eine Sekunde. Nach jeder erfolgreichen Stufe wird der Sicherheitsbereich größer. Schau dir den folgenden Code an:

 import time import random from mcpi.minecraft import Minecraft mc = Minecraft.create() # create Minecraft Object # clear area mc.setBlocks(-10, 1, -10, 25, 5, 25, 0) # create arena shell mc.setBlocks(0, 0, 0, 25, 10, 25, 17) # hollow out arena mc.setBlocks(1, 1, 1, 24, 10, 24, 0) # move player to arena mc.player.setPos(14, 25, 20) # teleport player # make them stay put # teleport player to start position every 1/10th second. # do this for 5 seconds then start the game time.sleep(2) total_wait = 0 mc.postToChat("Waiting to Start") while total_wait< 5: mc.player.setPos(14, 1, 20) # teleport player time.sleep(0.1) total_wait += 0.1 mc.postToChat("BEGIN!") # 10 levels for level in range(10): x, y, z = mc.player.getPos() level_time = 10 - level # reduce time by 1 second for each level mc.postToChat("Level - " + str(level + 1) + " start") # build floor mc.setBlocks(0, 0, 0, 25, 0, 25, 17) # make safe area safe_area_start = random.uniform(0, 22) safe_area_end = random.uniform(0, 22) mc.setBlocks(safe_area_start, 0, safe_area_end, safe_area_start + level, 0, safe_area_end + level, 57) elapsed_time = 0 while elapsed_time< 10: x, y, z = mc.player.getPos() time.sleep(0.25) elapsed_time += 0.25 # check player is still on floor if y< 0.75: mc.postToChat("Game Over") break; else: # remove floor mc.setBlocks(-10, 0, -10, 25, 0, 25, 8) # put safe area back mc.setBlocks(safe_area_start, 0, safe_area_end, safe_area_start + level, 0, safe_area_end + level, 57) time.sleep(2.5) continue break 

Speichere das als " mini_game_2.py " und gib ihm einen Lauf.

Der Pi 2 hat während der Ausführung von Minecraft einige Leistungsprobleme. Das Verwendungsdiagramm der Central Processing Unit (CPU) ( rechte obere Ecke ) zeigt niemals eine hohe Last, daher muss dies auf schlechtes Design und Optimierungen durch die Entwickler zurückzuführen sein. Diese Probleme haben nichts mit dem Ausführen von Code zu tun (da sie fortgesetzt werden, wenn Python nicht ausgeführt wird), sie werden jedoch von diesem Minispiel zusammengesetzt. Wenn dein Pi wirklich Probleme hat, möchtest du vielleicht die Größe der Arena reduzieren oder deinen Pi nicht genug Saft übertakten? Squeeze Your Raspberry Pi durch Overclocking nicht genug Saft? Squeeze Your Raspberry Pi durch Übertakten Wenn 2012 Hardware veröffentlicht wird, in die Sie sich wahrscheinlich verlieben werden, ist es der süßsaure Raspberry Pi, ein Mini-Computer, der in Großbritannien entwickelt und gebaut wurde. .. Weiterlesen .

Diamant-Detektor

Minecraft-Pi-Diamanten

Lass uns eine andere Schaltung machen. Dies wird eine Leuchtdiode (LED) verwenden, um zu leuchten, wenn sich darunter Diamanten befinden (innerhalb von 15 Blöcken). Folgendes brauchen Sie:

  • 1 x Steckbrett
  • 1 x LED
  • 1 x 220 Ohm Widerstand
  • Weiblich> männlich springen Kabel
  • Male> Male Sprungkabel

Hier ist die Schaltung:

Pi-LED-Verbindung

Verbinden Sie die Anode (langes Bein) mit GPIO Pin 14. Dieser Pin verhält sich wie + 5V. Schließen Sie die Kathode (kurzes Bein) an Masse an.

Ich habe ein billiges Erzspielzeug benutzt und es modifiziert, indem ich die hintere Abdeckung und die Elektronik entfernt habe, dann habe ich eine LED darunter gelegt. Sie könnten dies mit Heißkleber oder etwas Ähnlichem leicht dauerhaft machen.

Minecraft-Erz-Spielzeug

Speichere diesen Code als " diamonds.py ":

 import RPi.GPIO as GPIO import time from mcpi.minecraft import Minecraft mc = Minecraft.create() # create Minecraft Object led_pin = 14 # store the GPIO pin number GPIO.setmode(GPIO.BCM) # tell the Pi what headers to use GPIO.setup(14, GPIO.OUT) # tell the Pi this pin is an output while True: # repeat indefinitely x, y, z = mc.player.getPos() for i in range(15): # look at every block until block 15 if mc.getBlock(x, y - i, z) == 56: GPIO.output(led_pin, True) # turn LED on time.sleep(0.25) # wait GPIO.output(led_pin, False) # turn LED off time.sleep(0.25) # wait 

Wenn sich unterhalb des Spielers (innerhalb von 15 Blöcken) ein Diamant-Erzblock befindet, wird das Licht blinken.

Denken Geek Minecraft Light-Up Diamant Erz Denken Geek Minecraft Light-Up Diamant Erz Jetzt kaufen bei Amazon $ 12, 89

Hast du mit Minecraft Pi etwas Cooles gemacht? Lass mich in den Kommentaren wissen, was du gemacht hast oder wie weit du es in den Spielen geschafft hast.

In this article