Stap 6: Eenvoudige schildpad gebaseerde tekening
Een bijzonder eenvoudige manier om zich te vestigen in Minecraft is het gebruik van een schildpad-gebaseerd systeem. Ik maakte een zeer eenvoudige schildpad klasse (geïnspireerd door Martin O'Hanlon de MinecraftTurtle klasse, maar worden ontworpen voor stand-alone gebruik) die ik ben van plan om deze zomer naar het midden - en hoge-scholieren kennismaken met Minecraft python scripting gebruiken.
Een Minecraft wereld in de creatieve modus opstarten, en maak uw speler vliegen (dubbel-kraan van de spatiebalk). Initialiseer het script met:
(Ik verpakt alle Minecraft verbinding code binnen de klasse van de schildpad en het brengt ook wiskunde in de naamruimte voor gemak.) U kunt nu het doen van dingen zoals t.go(15) te trekken een lijn, terwijl de bewegende blokken van 15 naar voren, t.right(45) 45 graden naar rechts, t.down(30) 30 graden draaien, draaien en dus eenvoudig afbeeldingen tekenen.
U verplaatsen met de schildpad als het trekt, dat is leuk, en de schildpad waar de speler is begint, wijzen horizontaal.
U kunt bijvoorbeeld een horizontale vierkant met tekenen:
Jij een ster 7-zijdige door te doen:
zeven keer. Of gewoon eens in een lus:
U kunt materialen met penblock(). Bijvoorbeeld, een gouden verticale ster:
En u kunt de penbreedte met penwidth(x). Bijvoorbeeld, trekt dit een zeer simpele glazen donut (eigenlijk een verdikte 90-gon, maar wie kan vertellen het verschil?):
Hier zijn alle methoden beschikbaar:
- go(x): verplaatsen x blokken vooruit (tekening als pen neer)
- back(x): zet x blokken achteruit (tekening als pen neer)
- penup(): pauze tekening tekening hervatten
- left(angle): linksom door hoek (in graden)
- right(angle): rechts door hoek (in graden) draaien
- up(angle): draaien omhoog door hoek (in graden); Beginners moeten niet Meng de links/rechts en omhoog/omlaag rotaties of ze kunnen onverwachte resultaten krijgen (technische opmerking: hetzelfde als pitch(angle))
- down(angle): draaien naar beneden door hoek (in graden) (technische opmerking: hetzelfde als pitch(-angle))
- pendelay(x): elke beweging of de rotatie van de schildpad is vertraagd door xseconden; Standaard is 0,05; ingesteld op nul voor veel snellere tekening (de speler zal nog steeds verplaatsen, waarbij voor elke lijn getrokken, maar meteen van begin tot eind)
- angle(x): set horizontale hoek aan x (met de klok mee in graden; 0 = zuiden, 90 = West, 180 = noorden, 270 = Oosten); Hiermee herstelt u roll hoek
- verticalangle(x): verticale hoek ingesteld op x (in graden; omhoog is positief; 90 = verticaal omhoog;-90 = verticaal naar beneden); Hiermee herstelt u roll hoek
- angles(compass,vertical,roll): kompas, verticale instellen en roll hoeken; weggelaten argumenten worden genomen om de nul
- penblock(x): instellen materiaal om tekening te blokkeren x; Zie voor een overzicht van de vooraf gedefinieerde blokken, mcpi/block.py
- goto(x,y,z): zet de positie van de pen op (x, y, z); ook kunt u de positie als t.position.x, t.position.y en t.position.z
- follow(): de speler volgt de schildpad
- nofollow(): de speler niet Volg de schildpad
- turtle(x): als x speler, dit hetzelfde als follow() is en als x geen, dit hetzelfde als nofollow() is. Als u van frambozen Jam Mod gebruikmaakt kunt u ook andere entiteiten dan jezelf als de schildpad wordt. Bijvoorbeeld, spawnt turtle(HORSE) een paard om te gebruiken als een schildpad (alle beschikbare eenheden worden vermeld in mcpi/entity.py, maar de levenden beste als anderen niet zijn te zweven; en de draak Ender kan niet worden gecontroleerd). De entiteit blijft zodra het script is voltooid. Om het te maken verdwijnen, Bel turtle(None) of turtle(PLAYER).
- penwidth(x): lijndikte ingesteld op x (standaard is 1; bredere lijnen tekenen, vertragen en als volg modus is ingeschakeld, kan je uiteindelijk gevangen binnen de beroerte, dus aan het einde je penup() bellen moet en terug uit de tekening)
- pitch(x), yaw(x) en roll(x): schildpad via worp/yaw/roll hoeken (Zie de volgende stap van Instructable) draaien
- startface() en endface(): begin- en einddatums van een gevulde convexe veelhoek tekenen
- push() en pop(): opslaan en herstellen van tekening staat (rubriek, materiaal, gezicht status, dikte; maar niet op snelheid of schildpad Typ); handig voor L-systemen
- gridalign(): aanpassing van de huidige positie en schildpad richting aan het raster (de beste benadering van de huidige richting van de schildpad is gekozen)
De mcpiapi mod, in tegenstelling tot mijn frambozen Jam Mod, ondersteunt geen instelling van de speler richting. Dit betekent dat de speler zal niet worden geconfronteerd met dezelfde richting als de schildpad. (En er is een kans op andere problemen met schildpad scripts.)
Technische opmerking: Als u al een Minecraft object mc, initialiseren met t = Turtle(mc). Als u het object Minecraft weglaat bij het initialiseren van de schildpad, het wordt gemaakt voor u, en in beide gevallen kunt u het object Minecraft via t.mc.
Bonus voor frambozen Jam Mod 0.10 gebruikers:
U kunt ook spelen met python code voor het beheersen van de schildpad vanaf het chatvenster van Minecraft. (Op dit moment niet ondersteund door mcpiapi mod.)
In Minecraft, voer het turtleconsole.py script door te typen: /py turtleconsole [enter].
Elke regel van de python die je chat aangaan zal vervolgens worden uitgevoerd door de python interpreter. Voer een regel in de chat, druk op T, typt u de regel en druk op [enter]. Om af te sluiten turtleconsole, typt u net /py [enter] of Voer quit() [enter] in de chat.
Het kader bevat een lokale variabele t geïnitialiseerd als een Turtle()-object, dus u hoeft niet elke initialisatiecode, rechtvaardige dingen zoals uit te voeren:
Er is ook een console voor de volledige niet - Turtle API: console.py (met inbegrip van een pre-geïnitialiseerd mc lokale variabele). (Niet zomaar in alle postToChat() oproepen, of ze de interpreter zal verwarren.)