Python coding for Minecraft (13 / 17 stap)

Stap 13: Advanced notities 3: knopen


Parametrische vergelijking voor knopen kunt u vinden op het net. Dit keer, gaan we om dingen net iets anders dan voor te doen. Eerder hadden we lussen rijden direct bellen naar mc.setBlock(). Maar in onze oppervlakte percelen, zoals de Klein-fles, vaak hetzelfde blok zou krijgen getrokken meerdere keren, die is traag en inefficiënt. Een betere manier is om het aantal exacte blokken die reeds is opgesteld om te voorkomen dat het opnieuw uitvoeren van het zelfde ding bij te houden.

Verhuren mij gaat via een voorbeeld als dat (in knot.py) voor het tekenen van een knoop. Begin met een standaardkoptekst zoals:

We moeten nu onze knoop genereren. Ik gebruikte de vijftigerkruid formules uit hier. Dit vereist een parameter-t van 0 naar 2 looping * pi, met kleine genoeg stappen om ervoor te zorgen dat we hebben geen hiaten. Ik gebruikte 10000 stappen. Omdat dit in het geheugen gebeurt, en computers snel zijn, en overlappende blokken slechts eenmaal naar Minecraft verzonden zijn, is het gemakkelijker om gemakkelijker te stappen dan om te denken hoeveel is genoeg te doen. Het is belangrijk voor de coördinaten die gaan in het woordenboek als gehele getallen, dus we vertellen kunnen dat hetzelfde blok wordt tekening (een blok op (1.1,1.2,1.4) en een blok op (1,1,1) zijn het zelfde ding in Minecraft).

We eerst initialiseren en de positie van het knooppunt ten opzichte van de speler te stellen. Merk op dat de positie van de speler een geheel getal (u kan niet staan precies uitgelijnd met een blok) hoeft niet te worden en moet worden omgezet in een geheel getal.

We maken nu een lege verzameling met de naam gedaan om op te slaan van de coördinaten die we al hebt getekend:

En we trekken de set:

Dit trekt alleen gegevens die reeds is niet getekend. Merk op dat we nodig hebben om af te ronden de x-, y- en z coördinaten met de functie int(). Dat is de magie achter de verwijdering van de overlapping: wanneer de afgeronde coördinaten hetzelfde zijn, alleen één blok is getekend. (Opmerking: de dubbele haakjes in de done.add((x,y,z)) -lijn zijn wijten aan het feit dat wat we voegen naar de set is de coördinaat triple (x, y, z).)

De bovenstaande code is knot.py.

De knoop zou beter zijn als het touw dikker kijken. Er zijn vele manieren kan men dat doen. Een inefficiënte manier, maar makkelijk aangezien computers snel deze dagen zijn, is gewoon te tekenen van een kleine bal in plaats van een punt op elke pixel. Om dat te doen, moet ik eerst een beetje hulpprogrammafunctie tot het opstellen van een bal terwijl inchecken de gedaan om ervoor te zorgen dat er geen dubbele blokken:

Dit wordt de ongelijkheid-methode gebruikt om in te vullen een bal op (x0, y0, z0), met straal r.

Wijzig alleen onze knoop te maken terwijl lus om een bal in plaats van slechts een punt te maken:

Het resultaat is in knot2.py in de voorbeeldscripts.

Andere voorbeeld knopen zijn in trefoil.py, trefoil2.py en borromean.py. Als u met meerdere materialen tekent, kunt u gebruiken een woordenboek in plaats van een verzameling, of gewoon sequentieel doorlopen van de verschillende materialen en schakelt u de set voor elk (dat is wat ik doen in trefoil2.py en borromean.py).

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