Python coding for Minecraft (7 / 17 stap)

Stap 7: Geavanceerde schildpad gebaseerde tekening


Met behulp van de methoden datumwaarde, rechts(), up() en down() voor de schildpad is eenvoudig. Maar voor sommige tekeningen moeten we meer geavanceerde 3D controle. Bijvoorbeeld, zou u wilt tekenen een donut 45 graden omhoog gekanteld. Het is verleidelijk om het glas donut script uit de vorige stap, en toevoegen vóór de lus:

Maar dat levert een onverwacht resultaat--zie de foto. De reden hiervoor is dat de schildpad omhoog de hele tijd, klimmen zal terwijl de d.left()-methode draait het om de verticale as, en dus krijg je een spiraal.

Wat we moeten doen is daarentegen yaw/pitch/roll rotatins de schildpad. Zie de foto van NASA (Amerikaanse regering werken zijn openbaar domein) uit te leggen hoe de drie hoeken gaan, en alleen maar denken dat het vliegtuig uw schildpad is. (Helaas wegens Minecraft beperkingen, de roll-hoek heeft geen invloed op de weergave van de schildpad of het oogpunt waaruit u bekijkt.) Wat we moeten doen om te tekenen onze zijwaarts donut is eerste worp onze schildpad 45 graden met t.roll(45), en vervolgens wanneer tekenen van de donut gebruik t.yaw(-angle) in plaats van t.left(angle). De herziene code is in de screenshot.

Wat is er leuk over de rotaties yaw/pitch/roll is dat ze altijd ten opzichte van waar de schildpad wijst, terwijl de datumwaarde en rechts() ten opzichte van de Minecraft wereld zijn.

Tot slot, hier is een veel meer geavanceerde voorbeeld. Laten we trekken een boom. Dit omvat het maken van een recursieve functie. Beginnen met dit om ervoor te zorgen dat de tekening zo snel mogelijk

Nu doen we onze recursieve boom functie. Het basisidee achter dit is dat een filiaal gewoon een kleinere boom is. Dus maken we een functie waarmee een teller en een lengte van de tak. De teller geeft aan hoeveel iteraties de boom zal gaan. Bijvoorbeeld, counter = 1 betekent gewoon de stam zal worden getrokken, en counter = 1 betekent dat de stam en één set takken zullen worden getrokken.

De code controleert eerst, als onze teller heeft reduceren tot nul. Zo ja, hebben we niets te tekenen. Dan tekenen we een kofferbak. Dan tekenen we vier takken steken eruit met een eenvoudige lus. Voor het ontwerpen van dit codefragment, ik kan me voorstellen mezelf als de schildpad, hebben net verhuisd omhoog langs de romp. Om te tekenen op een tak, ik mijn zelf omhoog kantelen door 30 graden (bijvoorbeeld t.pitch(30)) en tekenen van een nieuwe boom van kleinere omvang: de teller is minder door een, en de romp zal 3/4 van de lengte van mijn huidige koffer. Ik denk dat tilt mezelf terug naar beneden 30 graden. Ik mezelf 90 graden draaien en herhaal de oefening. Ten slotte, zodra ik klaar ben met de takken, ik ga terug naar beneden de kofferbak.

Tot slot, ik moet gewoon zich te beroepen op deze code. Ik wil een boom met een teller van 6 en een lengte van de eerste tak van 20. En voor een goede maatregel, I'l maken van hout, en uiteraard verticaal opwaartse:

Deze fractal boom ziet er niet erg realistisch. Moeten we de dikke stam en de takken dunner en dunner als ze naar buiten gaan krijgen (zeg, krijgen half zo dik, totdat ze één blok), en wij moeten overschakelen van hout naar verlaat blokken zoals wij uitgaan. Maar bovenal echte bomen zijn dat regelmatig niet. We moeten sommige willekeurigheid. De eenvoudigste vorm van willekeur is gewoon elke tak een kans te geven niet om te groeien, zeggen een 20% kans. Ik heb al deze in mijn fancytree.py scriptgeïmplementeerd. De resulterende boom kijkt verrassend realistische voor iets geproduceerd door zo'n relatief eenvoudig stukje code. Een grappig bijwerking van hoe ik het geïmplementeerd is dat er een 20% kans dat niets zal worden getrokken--d.w.z., de boom heeft een kans om te groeien, die ook realistisch is. En elke keer dat u het script start, krijg je iets anders.

Een andere nuttige functie van de schildpad tekening klasse is kunnend trekken niet alleen de lijnen maar de veelhoekige oppervlakken. Om dit te doen, gewoon doen t.startface(), uw oppervlak trekken en voer t.endface(). Zodra u in de modus van het gezicht, elke keer dat u een lijn tekent, tekent de code eigenlijk een driehoek: een hoekpunt is het punt dat de schildpad was toen t.startface() werd genoemd en de regel is de tegenoverliggende rand. Dit trekt een vijfhoek gekanteld op zijn kant door 45 graden:

			
          

Gerelateerde Artikelen

Zomer kamp klasse op Python codering met Minecraft

Zomer kamp klasse op Python codering met Minecraft

Afgelopen zomer, leerde ik een vijf-daagse 1,5-uur-per-dag zomer kamp mini-cursus op Python programmeren met Minecraft voor begaafde kinderen als onderdeel van de Baylor University for Young People. Meeste kinderen waren een onderdeel van Project bel
Python codering voor Android Minecraft PE

Python codering voor Android Minecraft PE

De Raspberry PI versie van Minecraft kunt u script in Python, maken van fractal ontwerpen, tekeningen, turtle graphics, simpele spelletjes, enz. Hetzelfde kan worden gedaan op een desktop-versie met mijn frambozen Jam Mod (hier is mijn Instructable o
Star Wars "en" Star Trek in Minecraft met frambozen Jam Mod

Star Wars "en" Star Trek in Minecraft met frambozen Jam Mod

Ik zal uitleggen hoe (a) gemakkelijk maken van Star Wars en Star Trek (en andere) 3D modellen in Minecraft en (b) vliegen een ruimteschip in Minecraft (of zelfs hebben een andere entiteit, zoals een vleermuis of een zombie, vliegen het!), met behulp
Hoe maak je een grote Fancy House In Minecraft

Hoe maak je een grote Fancy House In Minecraft

Voordat we beginnen, wil ik u waarschuwen dat dit is gewoon een algemene gids voor het huis gebouw, zal ik niet geven exacte verhoudingen zoals sommige mensen willen een ander soort huis.Waarschuwing: Deze gids bestaat fore Minecraft 1.8. Andere vers
Echte wereld Minecraft

Echte wereld Minecraft

We all Know Minecraft is een geweldig spel, en Raspberry Pi heeft het meer awesome. Met de Minecraft-API kunnen we nu eenvoudig python scripts schrijven naar interface lezen wereld sensoren en knoppen in de Minecraft wereld.Stap 1: Benodigdheden 1. b
Raspberry Pi internetradio met kolf

Raspberry Pi internetradio met kolf

Het doel van deze tutorial is om u te tonen hoe u een radio die kan streamen van audio van het internet kunt bouwen met behulp van een eenvoudige web-interface om hem te bedienen. We zullen het volgende nodig:Raspberry PiSommige sprekers u kunt aansl
Personal Assistant met Telegram & Arduino.

Personal Assistant met Telegram & Arduino.

Hallo mensen!Een paar maanden geleden hoorde ik over een project dat een instant messenger bot gebruikt voor het maken van een systeem dat zou automatisch verwerken en ordenen van pizza's verzendingen door de costumieren via Whats app. Ik was als...
Fiets beurt Indicator van rugzak Cover

Fiets beurt Indicator van rugzak Cover

Dit project werd opgericht tijdens de CCA wiel goed ontwerp Sprint , die was gericht op het maken van fietsers beter zichtbaar voor voertuigen op de weg. Ik gebruikte een materiaal dat ik al gehad dat een regenhoes voor rugzak was. De volledige post
Raspberry Pi en een beetje erover

Raspberry Pi en een beetje erover

In dit instructable ik ga uitleggen wat een raspberry pi is en een beetje erover. Ook kunt projecten wat u doen op het.Stap 1: Wat is een Raspberry Pi?De Raspberry Pi is een low-cost, creditcard formaat computer die worden aangesloten op een monitor
Python programmeren - woordenboeken (for-lussen)

Python programmeren - woordenboeken (for-lussen)

# woordenboeken in Python; uitoefening van hoofdstuk 3 in "Snel Python leren"# Heb een paar for-lussen in deze die kunnen waarden verticaal afdrukkenafdrukken ("maken woordenboek nu.")telnums = {}afdrukken ("bevolken het woordenbo
Rekenmachine Coded met Python

Rekenmachine Coded met Python

na het leren een beetje over de programmeertaal Python, ik al dat het keurig om te proberen te repliceren van sommige van de wiskunde zou zijn dat zij Python shell doet met een GUI. Terwijl ik duidelijk niet overeenkomen met de shell prestaties voegt
Hoe maak je een Minecraft Skin for PC

Hoe maak je een Minecraft Skin for PC

Voordat dit instructable moet ik duidelijk dat deze huid maker alleen voor PC is maken. Met die uit de manier laat de slag!Stap 1: Aan de slag Om te beginnen u zal moeten gaan naar de website genaamd Nova huid. Zodra u het gevonden en opende het op i
Minecraft Simple Starter Kit For Survival spelers

Minecraft Simple Starter Kit For Survival spelers

Hallo iedereen! Vandaag zal ik laten zien u een gids voor mensen die willen beginnen overleving werelden!Stap 1: Grijpen sommige hout Eerste treft u 3 stukken hout van een mooie boom. Neem niet meer of u zult zitten having te veel hout.Stap 2: knutse
Minecraft Spigot Server Mod creatie

Minecraft Spigot Server Mod creatie

Minecraft servers zijn geweldig. Ze u toestaan om te bouwen van vrienden over de hele wereld, praten met mensen en prutsen met alle de opdrachten spon en alle plugins die beschikbaar voor het zijn. Als u helpen uitbreiden van de plugins beschikbaar v