Python coding for Minecraft (7 / 17 schritt)

Schritt 7: Erweiterte Schildkröte zeichnen


Links(), Rechts(), schaffen und down() Methoden für die Schildkröte ist einfach. Aber für einige Zeichnungen benötigen wir anspruchsvollere 3D-Steuerung. Beispielsweise empfiehlt es sich, einen Donut 45 Grad nach oben geneigt zu zeichnen. Es ist verlockend, nehmen das Glas-Donut-Skript aus dem vorherigen Schritt, und fügen Sie vor der Schleife:

Aber das führt zu einem unerwartetes Ergebnis--siehe Bild. Der Grund dafür ist, dass die Schildkröte sich die ganze Zeit klettern wird, während die d.left()-Methode, die es um die Hochachse dreht, und so erhalten Sie eine Spirale.

Stattdessen, was wir tun müssen, ist Rotatins gieren, nicken und Rollen der Schildkröte. Siehe das Bild von der NASA (US Regierungsarbeiten sind Public Domain) erklären, wie die drei Winkel gehen, und nur vorstellen, dass das Flugzeug Ihrer Schildkröte ist. (Leider, aufgrund von Minecraft Einschränkungen der Rollwinkel wirkt sich nicht wie die Schildkröte aussieht oder dem Gesichtspunkt aus, die Sie anzeigen.) Was wir tun müssen, um unsere seitwärts Donut zu zeichnen ist, zuerst unsere Schildkröte um 45 Grad mit t.roll(45), Rollen und dann beim Zeichnen des Donut verwenden t.yaw(-angle) anstelle von t.left(angle). Der überarbeitete Kodex ist in der Abbildung.

Schön über die Gier/Nick-/Roll Drehungen ist, dass sie immer relativ wo die Schildkröte zeigt, während links() und rechts() bezogen auf die Minecraft-Welt sind.

Schließlich ist hier ein wesentlich Erweitertes Beispiel. Ziehen wir einen Baum. Dies beinhaltet eine rekursive Funktion. Beginnen Sie mit dies zu gewährleisten, dass die Zeichnung so schnell wie möglich fertig ist

Nun tun wir unseren Baum rekursive Funktion. Die Grundidee dahinter ist, dass ein Zweig nur ein kleiner Baum ist. So stellen wir eine Funktion, die einen Zähler und einen Abzweig Länge nimmt. Der Zähler gibt an, wie viele Iterationen der Baum gehen wird. Zum Beispiel Zähler = 1 bedeutet nur der Stamm gezogen werden, und Zähler = 1 bedeutet den Stamm und eine Reihe von Niederlassungen erstellt werden.

Zuerst prüft der Code wenn unsere Zähler auf Null gelaufen. Wenn ja, haben wir nicht etwas zu zeichnen. Dann ziehen wir einen Stamm. Dann ziehen wir vier Zweige kleben aus ihm heraus mit einer einfachen Schleife. Um dieses Stück Code zu entwerfen, stell ich mich als die Schildkröte haben nur entlang des Rumpfes nach oben verschoben. Um den Zweig zu zeichnen, ich mein selbst oben kippen, um 30 Grad (z.B. t.pitch(30)) und zeichnen Sie einen neuen Baum kleiner: der Zähler ist weniger von einem, und sein Stamm werden 3/4 der Länge von meinem aktuellen Trunk. Ich denke Neigung mich wieder nach unten um 30 Grad. Ich mich um 90 Grad drehen und die Übung wiederholen. Schließlich, sobald ich mit den Zweigen fertig bin, gehe ich wieder Stamm.

Schließlich brauche ich nur diesen Code aufrufen. Ich will einen Baum mit einer Theke von 6 und eine anfängliche Astlänge 20 machen. Und für eine gute Maßnahme, I'l aus Holz, und machen natürlich senkrecht nach oben:

Dieses Fraktal-Baum sieht nicht sehr realistisch. Sollten wir den dicken Stamm und die Äste werden dünner und dünner, wie sie nach außen gehen (sagen, halb so dick, zu erhalten, bis sie zu einen einzigen Block erreichen), und wir sollten aus Holz lässt Blöcke zu wechseln, wie wir ausgehen. Aber vor allem echte Bäume sind nicht so regelmäßig. Wir brauchen einige Zufälligkeit. Die einfachste Form der Zufälligkeit soll nur jeder Zweig geben eine Chance nicht zu wachsen, zu sagen, eine Chance von 20 %. All dies in meinem fancytree.py Skriptreali- Die daraus resultierende Baum sucht nach etwas durch ein relativ einfaches Stück Code produziert überraschend realistisch. Ein lustiger Nebeneffekt wie ich es umgesetzt ist, dass es eine 20 % Chance, dass nichts – d. h. gezeichnet wird, der Baum hat eine Chance zu wachsen, die was auch realistisch ist. Und jedes Mal, wenn Sie das Skript ausführen, erhalten Sie etwas anderes.

Ein weiteres nützliches Feature von der Schildkröte Zeichenklasse ist nicht nur Linien aber polygonalen Flächen zeichnen zu können. Um dies zu tun, nur nicht t.startface(), Ihre Oberfläche zu ziehen, und dann t.endface(). Sobald Sie im Gesicht-Modus sind, jedes Mal, wenn Sie eine Linie zeichnen, der Code tatsächlich zeichnet ein Dreieck: ein Scheitelpunkt ist der Punkt der Schildkröte wurde als t.startface() genannt wurde und die Linie ist die gegenüberliegende Kante. Dies zieht ein Fünfeck auf die Seite gekippt um 45 Grad:

			
          

In Verbindung stehende Artikel

Sommer-camp-Klasse auf Python Codierung mit Minecraft

Sommer-camp-Klasse auf Python Codierung mit Minecraft

Letzten Sommer habe ich gelernt einen fünftägiges 1,5 Stunden pro Tag Sommer camp Mini-Kurs auf Python-Programmierung mit Minecraft für begabte Kinder als Teil der Baylor University for Young People. Die meisten Kinder waren ein Teil des Projekts ver
Realen Welt Minecraft

Realen Welt Minecraft

Wir alle wissen- Minecraft ist ein fantastisches Spiel, und Raspberry Pi hat es mehr awesome. Mit der Minecraft-API können wir nun einfach Python-Skripten Schnittstelle lesen Welt Sensoren und Schaltflächen für die Minecraft-Welt schreiben.Schritt 1:
Raspberry Pi Internetradio mit Kolben

Raspberry Pi Internetradio mit Kolben

Dieses Tutorial soll Ihnen zeigen, wie Sie bauen einen Radio, der Audio aus dem Internet streamen kann über eine einfache Web-Oberfläche um zu bedienen. Wir benötigen Folgendes:Raspberry PiEinige Lautsprecher können Sie Ihre Raspberry Pi Haken bis zu
Smart-Garage, angetrieben von PcDuino

Smart-Garage, angetrieben von PcDuino

wie viele Male haben Sie Gefahren Weg von Haus und Frage mich, wenn Sie Ihre Garage, oder nicht geschlossen haben?Hier präsentieren wir eine intelligente Garage durch PcDuinoangetrieben. Die Garage benachrichtigt Sie per e-Mail, wenn das Tor offen ge
Fahrrad-Blinker aus Rucksack Deckel

Fahrrad-Blinker aus Rucksack Deckel

Dieses Projekt entstand während des CCA Rad gut Design Sprint abzielen, Biker besser sichtbar für Fahrzeuge auf der Straße war. Früher habe ich ein Material, das hatte ich schon die eine Rucksack-Regenhülle war. Der ganzen Beitrag über das Projekt fi
Arduino 1-Wire Sniffer

Arduino 1-Wire Sniffer

Während der Arbeit auf einem 1-Draht-Bus-System - Aufbau z.B. ein Arduino Uno 1-Wire-Slave-Gerät mithilfe einer OneWireSlave Bibliothek oder allgemeine Entwicklung und debugging - eine Logik Analysator, Auswertung und Interpretation den Bit-Datenverk
Spidern eine Ajax-Website mit einem asynchronen Login-Formular

Spidern eine Ajax-Website mit einem asynchronen Login-Formular

das Problem: Spidern Tools nicht AJAX Login-Authentifizierung zu ermöglichen.Diese instructable zeigen Ihnen, wie durch ein AJAX-Formular mit Python und einem Modul namens limitierte anmelden.Spinnen sind Web-Automatisierung-Programme, die zunehmend
Raspberry Pi und ein bisschen darüber

Raspberry Pi und ein bisschen darüber

In diesem instructable werde ich erklären, was eine Raspberry Pi ist und ein wenig über sie. Auch kann was Sie Projekte drauf tun.Schritt 1: Was ist ein Raspberry Pi?Der Raspberry Pi ist ein low-cost, Scheckkarten Format Computer, die an einem Comput
Python Programmierung für Android Minecraft PE

Python Programmierung für Android Minecraft PE

Die Raspberry PI-Version von Minecraft können Sie Skripts in Python Fraktale Entwürfe, Zeichnungen, Turtle-Grafik, einfache Spiele zu machen. Das gleiche lässt sich auf eine Desktop-Version mit meinem Himbeer Jam Mod (hier ist meine Instructable wie,
Python-Programmierung - Wörterbücher (for-Schleifen)

Python-Programmierung - Wörterbücher (for-Schleifen)

# Wörterbücher in Python; Übung aus Kapitel 3 in "Python schnell lernen"# Haben ein paar for-Schleifen in diesen, die Werte vertikal drucken könnenDrucken Sie ("Creating Wörterbuch jetzt.")Telnums = {}Drucken Sie ("bevölkern das W
Rechner-Coded mit Python

Rechner-Coded mit Python

nach dem lernen etwas über die Programmiersprache Python, ich aber, daß es nett wäre, um zu versuchen und einige der Mathematik zu replizieren, dass sie Python Shell hat mit einem GUI. Während ich eindeutig nicht die Schale Leistung entsprach fügt me
Zapfen der Minecraft Server Mod Schöpfung

Zapfen der Minecraft Server Mod Schöpfung

Minecraft-Server sind genial. Sie können Sie Freunde auf der ganzen Welt bauen mit Leuten reden und Herumspielen mit den Befehlen Zapfen und alle Plugins, die für sie zur Verfügung stehen. Wenn Sie dazu beitragen, die Plugins für Zapfen und allen Use
Star Wars und Star Trek in Minecraft mit Himbeer Marmelade Mod

Star Wars und Star Trek in Minecraft mit Himbeer Marmelade Mod

Ich werde erklären, wie man Star Wars (a) leicht zu machen und Star Trek (und anderen) 3D-Modelle Minecraft und (b) fliegt ein Raumschiff in Minecraft (oder sogar haben ein anderes Gebilde wie eine Fledermaus oder ein Zombie fliegen!), mit dem Beispi
Minecraft TNT Tissue Box Cover

Minecraft TNT Tissue Box Cover

Minecraft ist genial! Es sieht genial und es macht Spaß zu spielen. Seine pixelig Stil passt perfekt zu Handarbeiten wie Kunststoff Leinwand. Ich beschloss, ein Gewebe Kastendeckel mit Kunststoff Leinwand im Stil von Minecraft TNT-Block bilden. Viel