Lernen Sie Python und Elektronik mit Minecraft Pi Edition
Wollten Sie schon immer Code lernen, wissen aber nicht, wo Sie anfangen sollen? Erfahren Sie, wie Sie Minecraft auf dem Raspberry Pi mithilfe von Python und einfacher Elektronik steuern können. Hier ist das Endergebnis:
Für dieses Projekt benötigen Sie ein Pi 2 oder neuer. Während Sie die meisten dieser Aufgaben über die Befehlszeile über Secure Shell (SSH) erledigen könnten, konzentriert sich dieses Tutorial auf die Codierung direkt auf dem Pi.
Himbeer-Pi 3-Modell B-Motherboard Himbeer-Pi 3 - Modell B-Motherboard Kaufen Sie jetzt bei Amazon $ 34.49
Neu bei Minecraft? Machen Sie sich keine Sorgen - hier ist unser Minecraft-Beginner-Guide Der (Latecomer) Anfänger-Guide zu Minecraft Der (Latecomer) Anfänger-Guide zu Minecraft Wenn Sie zu spät zur Party kommen, machen Sie sich keine Sorgen - dieser ausführliche Anfänger-Guide hat Sie abgedeckt. Weiterlesen .
Einführung in Minecraft Pi
Minecraft für den Raspberry Pi wurde zum Lernen und Basteln entwickelt (und es ist kostenlos). Es wird mit einem Application Programming Interface (API) geliefert, mit dem Code problemlos mit Minecraft kommunizieren kann. Es ist großartig, um zu lernen, wie man in Python programmiert und wie man mit Elektronik anfängt. Anfängerelektronik: 10 Fähigkeiten, die man kennen muss Anfängerelektronik: 10 Fähigkeiten, die man wissen muss Viele von uns haben noch nie einen Lötkolben angerührt - aber das Bilden von Dingen ist möglich unglaublich lohnend. Hier sind zehn der grundlegendsten DIY-Elektronikfähigkeiten, die Ihnen den Einstieg erleichtern. Weiterlesen .
Was ist Python??
Python ist eine Programmiersprache. Es ist interpretiert, Das bedeutet, wenn Sie eine Python-Datei oder ein Python-Programm ausführen, muss der Computer zunächst ein wenig Arbeit an der Datei ausführen. Die Nachteile sind, dass es im Vergleich zu kompilierten Sprachen als langsam angesehen werden kann.
Die Vorteile von interpretierten Sprachen sind die Codiergeschwindigkeit und die Freundlichkeit. Sie müssen den Computer nicht benachrichtigen Was Daten, die 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 dies ist eine etwas vereinfachte Ansicht, aber das Programmieren sollte Spaß machen! Wenn Sie sich in die komplexen technischen Details einarbeiten, kann dies etwas mühsam werden.
Python unterscheidet zwischen Groß- und Kleinschreibung. Dies ist wichtig zu wissen, da Python keine Objekte erkennt auch wenn sie richtig geschrieben sind Wenn der Fall falsch ist. “Etwas tun()” funktioniert nicht, wenn die Methode tatsächlich aufgerufen wird “Etwas tun()”. Python verwendet auch Einrückungen. Andere Programmiersprachen interessieren sich vielleicht nicht dafür, wie viele Einrückungen Ihr Code hat, wohingegen Python tut Pflege. Einrückungen werden verwendet, um Python mitzuteilen, wo der Code gehört. Andere Sprachen können verwendet werden “Geschweifte Klammern” () zum Gruppieren von Code - Python verwendet diese nicht. In Python wird ein Hash (#) für Kommentare verwendet, und Kommentare werden verwendet, um anderen Entwicklern oder Benutzern, die sich den Code ansehen, mitzuteilen, was ein bestimmter Teil tut und 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?). Dieses Tutorial verwendet Python 3.
Ersteinrichtung
Vorausgesetzt, Ihr Pi ist bereits eingerichtet und läuft Raspbian So installieren Sie ein Betriebssystem auf Ihrem Raspberry Pi So installieren Sie ein Betriebssystem auf Ihrem Raspberry Pi Im Folgenden wird beschrieben, wie Sie ein neues Betriebssystem auf Ihrem Pi installieren und ausführen können - und wie Sie Ihr perfektes Setup klonen für eine schnelle Notfallwiederherstellung. Lesen Sie mehr, es sind nicht viele Einstellungen erforderlich.
Terminal öffnen (Menü> Zubehör> Terminal) und führen Sie diesen Befehl aus. Es ist immer ratsam, die Repository-Liste auf dem neuesten Stand zu halten. Dadurch wird die aktuelle Liste der Programme heruntergeladen (die Programme selbst werden nicht heruntergeladen. Dadurch kann der Pi wissen, welche Programme aufgerufen werden und wo sie zu finden sind.).
sudo apt-get update
Aktualisieren Sie nun den Pi (dies kann eine Weile dauern):
Sudo apt-get Upgrade
Python und Minecraft Pi sind bereits installiert. Wenn Minecraft Pi jedoch aus irgendeinem Grund nicht installiert wird, ist die Installation von 5 Möglichkeiten für die Installation von Software auf Raspberry Pi einfach. 5 Möglichkeiten, um Software auf Raspberry Pi zu installieren. Alles, was mit einem Raspberry Pi zu tun ist, werden Sie tun Sie müssen wissen, wie ein Betriebssystem installiert wird und welche Software darauf ausgeführt wird. Wenn Sie mit Linux noch nicht vertraut sind, kann dies entmutigend sein. Weiterlesen :
sudo apt-get install minecraft-pi
Navigieren Sie zu Dokumenten und erstellen Sie einen neuen Ordner mit dem Namen “Minecraft”:
cd Documents / mkdir Minecraft
Sie können den Inhalt dieses neuen Ordners anzeigen:
ls
Hier 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 mit pwd überprüfen, was für Print Working Directory steht:
pwd
Starten Sie Minecraft, indem Sie zu gehen Menü> Spiele> Minecraft Pi. Sie benötigen diesen Vorgang, werden aber später darauf zurückkommen.
Öffnen Sie Python 3 von 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. Gehe zu Datei> Neue Datei und dann Datei> Speichern und speichern Sie dies in dem Ordner, den Sie zuvor erstellt haben. (Dokumente> Minecraft). Nennen wir es mal “hello_world.py“. Sie müssen die Erweiterung .py nicht verwenden. Diese wird automatisch hinzugefügt. Dies ist jedoch empfehlenswert.
Wenn Sie zurück zum Terminal wechseln und in den Minecraft-Ordner navigieren, sollten Sie die gerade erstellte Datei sehen:
cd Minecraft / ls
Sie können diese Datei folgendermaßen ausführen:
Python hallo_welt
Beachte wie “Python” ist alles in Kleinschreibung. Dies muss vor dem Dateinamen sein, da er dem Pi mitteilt, dass die folgende Datei Python ist. Daher sollte sie als solche ausgeführt werden.
Wechseln Sie wieder zum Python-Editor und geben Sie Folgendes ein:
print "Hallo, Welt!"
Speichern Sie diese Datei und führen Sie sie erneut aus - Sie sollten jetzt sehen “Hallo Welt!” in der Kommandozeile erscheinen - ordentlich! Der Druckbefehl weist Python einfach an, den folgenden Text in Anführungszeichen auszugeben. Das ist gut, aber für Minecraft nicht besonders nützlich, lass es uns verbinden:
von mcpi.minecraft import Minecraft mc = Minecraft.create () mc.postToChat ("Hallo, Welt!")
Wenn Sie nun diese Datei speichern und ausführen, sollten Sie sehen “Hallo Welt!” erscheinen im Minecraft-Spiel. Lassen Sie uns den Code aufschlüsseln:
von mcpi.minecraft importieren Sie Minecraft
Diese Zeile teilt Python mit, dass Sie Code aus einer anderen Datei verwenden möchten. Diese mcpi.minecraft-Datei wurde entwickelt, um Minecraft einfach steuern zu können.
mc = Minecraft.create ()
Diese Zeile erstellt ein Objekt namens “mc” (Minecraft). Sie müssen dies erstellen, um die Kommunikation mit dem Minecraft-Spiel zu ermöglichen - es reicht nicht aus, nur die Datei einzuschließen.
mc.postToChat ("Hallo, Welt!")
Schließlich sagt diese Zeile Minecraft, dass er Text in den Chat schreiben soll. Versuchen Sie es zu ändern “Hallo Welt!” zu etwas anderem und sehen, was passiert, aber denken Sie daran, beide Anführungszeichen einzufügen. Wenn Sie Softwareprobleme haben, sind dies einige häufige Python- und Minecraft Pi-Fehler:
- AttributeError - Dies ist ein Tippfehler, z. B. Pint oder Prnt anstelle von Print
- NameError: Name 'Minecraft' ist nicht definiert - denken Sie daran, die benötigten Module zu importieren
- NameError: Name 'true' ist nicht definiert - Bei Python muss die Groß- und Kleinschreibung beachtet werden “Wahr”
- socket.error: [Errno 111] Verbindung abgelehnt - Stellen Sie sicher, dass Minecraft läuft
Projekte
Nun, da Sie die Grundlagen von Python und Minecraft kennen, lassen Sie uns ein paar coole Projekte machen. Alle Codecs können von Github heruntergeladen werden.
Automatisierter Bridge Builder
Dieses Programm wird effektiv eine Brücke über Wasser bauen. Wenn der Spieler sich einem Gewässer nähert, wandelt das Programm mehrere Blöcke in Stein um. Da Minecraft ein Koordinatensystem verwendet, ist es sehr einfach, die Position des Spielers zusammen mit der Art der Blöcke um den Spieler zu ermitteln. Minecraft Pi ist etwas eingeschränkt, daher ist es nicht möglich, mehrere verschiedene Blöcke gemeinsam zu aktualisieren. Sie können dieses Verhalten jedoch leicht selbst codieren.
Erstellen Sie eine neue Datei (Datei> Neue Datei) und speichern Sie es als “bridge_builder.py“.
von mcpi.minecraft import Minecraft mc = Minecraft.create () # Minecraft-Objekt erstellen, während True: x, y, z = mc.player.getPos () # Spielerposition speichern # die umgebenden Blöcke speichern 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) wenn a == 8 oder a == 9 oder b == 8 oder b == 9 oder c == 8 oder c == 9 oder d == 8 oder d == 9: # 8 oder 9 ist Wasser. Setzen Sie die umgebenden Blöcke auf dem Boden auf einen Festkörper (Stein), wenn Wasser gefunden wird. 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 gerichtet ist. Dies ist die Etagenebene. Wenn der Wert von y verwendet wurde, würde das Skript etwa auf Knieebene nach Blöcken 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 diese addieren oder von ihnen abziehen, um Positionen um den Spieler herum zu erhalten. Sie müssen nicht die x-, y- und z-Werte verwenden. Sie können eine beliebige Zahl verwenden. Möglicherweise wissen Sie jedoch nicht, wie sich dieser Block auf den Spieler bezieht. Führen Sie diese Datei über die Befehlszeile aus und sehen Sie, was passiert.
Sie sollten sehen, dass sich ein kleiner Boden in Stein verwandelt, sobald der Spieler ein Gewässer erreicht. Das ist nicht großartig - Sie können schnell genug gehen, um ein Problem zu verursachen. Sie können dies lösen, indem Sie eine größere Wassermenge in Land umwandeln. Der letzte Teil der mc.setBlocks () - Methode ist die Block-ID. Eines ist die Block-ID für Stein. Sie könnten dies in Holz, Gras oder irgendetwas ändern. Wenn Sie möchten, können Sie dies ganz leicht in ein komplexes Design umwandeln - vielleicht eine Hängebrücke!
Super-Mining-Schaltfläche
Dieses Beispiel wird den Bergbau in kurzer Zeit erledigen. Es besteht aus einer physischen Taste, die, wenn sie gedrückt wird, 10 Blöcke würfelt. Beginnen wir mit dem Button. Ähnlich wie bei den Tasten des Arduino benötigen Sie eine kleine Menge Elektronik, die Sie in einem Basis-Starter-Kit finden sollten. Was ist in Ihrem Arduino-Starter-Kit? [Arduino-Anfänger] Was enthält Ihr Arduino-Starter-Kit? [Arduino-Anfänger] Angesichts einer Kiste voller elektronischer Komponenten ist es leicht, überwältigt zu werden. Hier finden Sie eine Anleitung, was genau in Ihrem Kit enthalten ist. Weiterlesen :
- 1 x Brotschneidebrett
- 1 x Taster
- 1 x 220 Ohm Widerstand
- Weibliche> männliche Sprungkabel
- Männlich> männliche Jump-Kabel
Hier ist die Schaltung:
Dieser Widerstand wird als a bezeichnet “runterziehen” Widerstand. Dies stellt sicher, dass das Pi der Meinung ist, dass die Taste gedrückt wird, wirklich die Taste, die gedrückt wird. Sie müssen dies nicht verwenden, es wird jedoch empfohlen, da es ohne Rauschen und falschen Messwerten zu Störungen kommen kann.
Die Schaltfläche 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 diese nicht alle vom Pi aus steuerbar sind und je nach Modell leicht variieren.
Nun, da die Taste angeschlossen 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 in Terminal aus.
Importieren von RPi.GPIO als GPIO-Importzeit GPIO.setmode (GPIO.BCM) # teilt dem Pi mit, welche Header GPIO.setup (14, GPIO.IN) verwenden soll. # teilt dem Pi mit, dass dieser Pin eine Eingabe ist, während True: if GPIO.input ist (14) == Richtig: # Suche nach Tastendruck "BUTTON WORKS!" # log result time.sleep (0.5) # warte 0,5 Sekunden
Drücken Sie Strg + C um das Skript zu stoppen. Wenn alles richtig funktioniert, sollten Sie sehen “KNOPF FUNKTIONIERT!” im Terminal. Beachten Sie, dass dieser Test wie das Minecraft-Modul die Module RPi.GPIO und time verwendet. Dadurch kann der Pi auf die Hardware-Pins zugreifen und nützliche Timing-Funktionen bereitstellen.
Lassen Sie uns nun den Rest des Codes beenden. Erstellen Sie eine neue Datei “super_mine.py“. Hier ist der Code:
RPi.GPIO als GPIO importieren Importzeit aus mcpi.minecraft import Minecraft mc = Minecraft.create () # Minecraft-Objekt erstellen GPIO.setmode (GPIO.BCM) # teilt dem Pi mit, welche Header GPIO.setup (14, GPIO.IN) verwenden soll #) Sagen Sie dem Pi, dass dieser Pin eine Eingabe ist, während er wahr ist: Wenn GPIO.input (14) == wahr ist: # suchen Sie nach Tastendruck x, y, z = mc.player.getPos () # lesen Sie die Spielerposition mc.setBlocks (x, y, z, x + 10, y + 10, z + 10, 0) # meine 10 Blöcke mc.setBlocks (x, y, z, x - 10, y + 10, z - 10, 0) # Mine 10 Blöcke Zeit. Schlaf (0,5) # Warten Sie 0,5 Sekunden
mc.player.getPos () gibt die aktuellen Koordinaten der Spieler zurück, die dann in x, y und z gespeichert werden. Das setBlocks () Diese Methode weist Minecraft an, alle Blöcke zwischen Anfang und Ende mit dem folgenden Block zu füllen. Null ist die Block-ID für Luft. Sie können dies in eine andere Block-ID ändern, um einen Bereich auszufüllen. Sie können die Koordinaten auch in +100 oder sogar +1000 Blöcke ändern. Der Pi kann jedoch anfangen zu kämpfen, wenn Sie zu verrückt werden. Beachten Sie, dass y + 10 für beide Zeilen gleich ist. Sie können dies in y-10 ändern, wenn Sie Blöcke unterirdisch entfernen möchten.
Teleportieren
Eine weitere einfache Verwendung für diese Schaltfläche könnte sein “teleportieren”. Die Minecraft Pi Api bietet eine Möglichkeit, die Spielerposition einzustellen. Der folgende Code wird “teleportieren” den Spieler zu einem voreingestellten Ort:
mc.player.setPos (0, 0, 0)
Beachten Sie, dass seine Methode drei Parameter akzeptiert. x, y und z - Sie können also alles einstellen, um den Player sofort an diesen Ort zu teleportieren.
Erstellen Sie eine Kopie der super_mine-Datei (Datei> Kopie speichern unter) und ändern Sie es, indem Sie if durch Folgendes ersetzen:
Wenn GPIO.input (14) == True: # Suche nach der Taste, drücken Sie mc.player.setPos (0, 0, 0) # teleportieren Sie den Player time.sleep (0,5) # warten Sie 0,5 Sekunden
Diese Datei sollte jetzt so aussehen:
importiere RPi.GPIO als GPIO aus mcpi.minecraft importiere Minecraft-Importzeit mc = Minecraft.create () # Minecraft-Objekt erstellen GPIO.setmode (GPIO.BCM) # teilt dem Pi mit, welche Header GPIO.setup (14, GPIO.IN) verwenden soll ) # sag dem Pi, dieser Pin ist eine Eingabe, während True: Wenn GPIO.input (14) == True: # Suche nach Tastendruck, mc.player.setPos (0, 0, 0) # teleport player time.sleep (0.5) # 0,5 Sekunden warten
Speichern Sie es als “teleport.py” und Renn.
Wenn Sie dies verwenden, kann es vorkommen, dass der Spieler in einigen Blöcken stecken bleibt. In diesem Fall müssen Sie die Koordinaten an ein bekanntes offenes Feld anpassen (oben links auf dem Bildschirm wird Ihre aktuelle Position angezeigt)..
Ein Haus bauen
Eine letzte Aufgabe für diese Schaltfläche ist der Bau eines Hauses. Ähnlich wie beim Quick-Mining-Beispiel oben wird dies einfach Blöcke um den Spieler ersetzen, um ein Haus zu bauen. Für unterschiedliche Materialien (Fenster, Wände usw.) werden unterschiedliche Block-IDs verwendet. Um die Codierung zu vereinfachen, wird ein fester Block erstellt und dann das Innere entfernt (Block auf Luft setzen), wodurch eine hohle Hülle entsteht. Sie könnten Extras wie ein Bett oder eine Tür hinzufügen, das Minecraft Pi-Projekt ist jedoch ein wenig unvollständig. Diese Objekte funktionieren zwar, wenn sie vom Spieler platziert werden, aber sie sind bei Verwendung von Python nicht brillant.
von mcpi.minecraft import Minecraft import RPi.GPIO als GPIO-Importzeit mc = Minecraft.create () # Minecraft-Objekt erstellen GPIO.setmode (GPIO.BCM) # teilt dem Pi mit, welche Header GPIO.setup (14, GPIO.IN) verwenden soll #) Sagen Sie dem Pi, dass dieser Pin ein wahrer Eingang ist: wenn 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) # Shell-Shell-Setblöcke (x + 3, y, z + 3, x + 6, y + 2, z + 7, 0) # entfernen in mc.setBlocks (x + 2, y, z + 5, x + 2, y + 1, z + 5, 0) # machen Sie die Türöffnung mit 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) # machen Fenster 3
Speichern Sie dies als “house.py” und Renn. Wenn alles gut ist, sollten Sie ein kleines Haus sehen (Sie müssen sich möglicherweise umdrehen, um es zu finden). Es ist sehr einfach, eine Öffnung und einige Fenster. Theoretisch gibt es keine Grenzen dafür, wie groß oder komplex ein Gebäude ist, das Sie bauen können.
Mach ein Minispiel
Als nächstes machen wir ein Minispiel! Dies wird ziemlich einfach sein, wenn der Spieler auf einen Sandblock tritt, wird er nach einiger Zeit in Lava umgewandelt. Dies ist ein gutes Spiel, da Sie Ihre eigenen Level entwerfen oder ändern können, um die Dinge schwieriger zu machen. Sie benötigen die Schaltfläche für dieses Beispiel nicht.
Erstellen Sie eine neue Datei und speichern Sie sie als “mini_game.py“. Hier ist der Code:
von mcpi.minecraft import Minecraft Import zufällige Importzeit mc = Minecraft.create () # Minecraft-Objekt während True erstellen: x, y, z = mc.player.getPos () block_under_player = mc.getBlock (x, y - 1, z ) Wenn block_under_player == 12: # Spieler auf Sand steht, Timer starten random_time = random.uniform (0.1, 2.5) # generiere Zufallszahl time.sleep (random_time); # wait mc.setBlock (x, y - 1, z, 11) # verwandeln es in Lava
Dieser Code ist ein guter Einstieg in die zufällig() Funktion: zufällig.uniform (0,1, 2,5) erzeugt eine Zufallszahl zwischen 0,1 (1/10 Sekunde) und 2,5 (2,5 Sekunden). Das Erhöhen dieser Zahlen macht das Spiel einfacher.
Versuch es! Stellen Sie sich auf einen Sandblock und es wird sich bald in Lava verwandeln. Dies könnte die Basis für ein komplexeres Spiel sein.
Machen Sie ein weiteres Minispiel
Die Voraussetzung für dieses Spiel ist einfach: Stehen Sie nicht auf dem Holzboden, wenn die Zeit abläuft. Der Spieler wird in eine teleportiert “Arena”. Sie sind gezwungen, still zu stehen, bis das Spiel beginnt. Sobald der Timer gestartet ist, wird der Boden in Wasser umgewandelt. Der Spieler muss in der sicheren Zone (Diamantblöcke) stehen, um zu überleben. Jede Stufe reduziert den Timer um eine Sekunde. Nach jedem erfolgreichen Level wird der sichere Bereich größer. Schauen Sie sich den Code unten an:
Importzeit Import von zufällig aus mcpi.minecraft importieren Minecraft mc = Minecraft.create () # create Minecraft Object # Bereich löschen mc.setBlocks (-10, 1, -10, 25, 5, 25, 0) # create arena shell mc. setBlocks (0, 0, 0, 25, 10, 25, 17) # Aushöhlen von Arena mc.setBlocks (1, 1, 1, 24, 10, 24, 0) # Bewegen des Spielers in die Arena von M.player.setPos (14 , 25, 20) # teleport-Spieler # veranlasst sie, # teleportiert zu werden und jede 1/10 Sekunde in Position zu bringen. # mache dies 5 Sekunden lang und starte dann das Spiel time.sleep (2) total_wait = 0 mc.postToChat ("Waiting to Start") während 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
Speichern Sie dies als “mini_game_2.py” und lass es laufen.
Der Pi 2 hat einige Leistungsprobleme beim Ausführen von Minecraft. Das Nutzungsdiagramm der CPU (Central Processing Unit) (obere rechte Ecke) zeigt nie eine hohe Last, daher muss dies auf ein schlechtes Design und Optimierungen durch die Entwickler zurückzuführen sein. Diese Probleme haben nichts mit dem Ausführen von Code zu tun (sie werden fortgesetzt, wenn Python nicht ausgeführt wird), sie werden jedoch durch dieses Minispiel verstärkt. Wenn Ihr Pi sich wirklich schwer tut, möchten Sie vielleicht die Größe der Arena verringern oder Ihren Pi Not Enough Juice übertakten? Drücken Sie Ihren Himbeer-Pi, indem Sie nicht genug Saft übertakten? Squeeze Your Raspberry Pi By Overclocking Wenn im Jahr 2012 Hardware veröffentlicht wurde, in die Sie sich wahrscheinlich verlieben werden, dann ist es der süße Zucker Raspberry Pi, ein Mini-Computer, der in Großbritannien entwickelt und gebaut wurde. Weiterlesen .
Diamantdetektor
Lass uns eine andere Schaltung machen. Hierbei wird eine Leuchtdiode (LED) verwendet, um zu leuchten, wenn sich darunter Diamanten befinden (innerhalb von 15 Blöcken). Hier ist was Sie brauchen:
- 1 x Brotschneidebrett
- 1 x LED
- 1 x 220 Ohm Widerstand
- Weibliche> männliche Sprungkabel
- Männlich> männliche Jump-Kabel
Hier ist die Schaltung:
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 Erz-Spielzeug benutzt und es modifiziert, indem ich die hintere Abdeckung und die Elektronik entfernt habe. Dann habe ich eine LED darunter platziert. Sie können dies leicht mit Heißkleber oder etwas Ähnlichem dauerhaft machen.
Speichern Sie diesen Code als “Diamanten.py“:
importiere RPi.GPIO als GPIO-Importzeit aus mcpi.minecraft importiere Minecraft mc = Minecraft.create () # Minecraft-Objekt erstellen led_pin = 14 # speichere die GPIO-Pin-Nummer GPIO.setmode (GPIO.BCM) # teile dem Pi mit, welche Header verwendet werden sollen GPIO.setup (14, GPIO.OUT) # teilt dem Pi mit, dass dieser Pin ein Ausgang ist, während er wahr ist: # Wiederholung auf unbestimmte Zeit x, y, z = mc.player.getPos () für i in range (15): # jedes betrachten Block bis Block 15, wenn mc.getBlock (x, y - i, z) == 56: GPIO.output (led_pin, True) # LED einschalten time.sleep (0.25) # wait GPIO.output (led_pin, False) # LED ausschalten time.sleep (0,25) # wait
Wenn sich unter dem Player ein Diamantblock (innerhalb von 15 Blöcken) befindet, blinkt das Licht.
ThinkGeek Minecraft Light-Up Blue Stone Diamantenerz - Sicher, um Pigmen fernzuhalten ThinkGeek Minecraft Light-Up Blue Stone Diamantenerz - Sicher, dass Pigmen ferngehalten werden Kaufen Sie jetzt bei Amazon $ 31.99
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 gemacht hast.
Erfahren Sie mehr über: Elektronik, Minecraft, Programmierung, Python, Raspberry Pi.