Zomer kamp klasse op Python codering met Minecraft (9 / 12 stap)

Stap 9: Dag drie: Part One: Magic brug


De magische brug is een geweldig idee van de walvis en O'Hanlon boek. Het maakt een brug die zich onder de speler uitstrekt, laten de speler lopen op het water en in de lucht, en u kunt het weergeven van de kinderen hoe een programma groeit uit een eenvoudige tot meer complexe vorm.

Hier is de eenvoudigste versie:

 from mc import * from time import * mc = Minecraft() while True: position = mc.player.getTilePos() mc.setBlock(position.x, position.y-1, position.z, STAINED_GLASS_BLUE) sleep(0.2) 

Uitleggen van alle stappen zorgvuldig aan de kinderen, gericht op de oneindige spel lus (terwijl juist), en hoe mc.player.getTilePos() controleert de speler op de huidige positie, onderverdeeld in x, y- en z-coördinaten. Vertel ze dat het sleep(0.2) is om ervoor te zorgen dat de Minecraft is niet overweldigd met het doen van allerlei setBlocks, zodat er een 0.2 tweede wacht. Herinner dat u een script met /py vanzelf stoppen kunt.

Hebben alle kinderen maken een brug werken, en dan praten met hen over de tekortkomingen. Bijvoorbeeld, schaadt de brug de grond lopen in. U u moet herzien zodat het alleen in de lucht wordt getrokken. Hiermee kunt u introduceren van de if -instructie:

 from mc import * from time import * mc = Minecraft() while True: position = mc.player.getTilePos() belowBlock = mc.getBlock(position.x, position.y-1, position.z) if belowBlock == AIR.id: mc.setBlock(position.x, position.y-1, position.z, STAINED_GLASS_BLUE) sleep(0.2) 

Het uitleggen van het verschil tussen de toewijzing = en de vergelijking ==. Het is belangrijk dat je AIR.id in plaats van gewoon lucht in de code. Dat komt omdat AIR is een blok maar getBlock() in de Minecraft Python PI API retourneert niet een blok maar een blok id-nummer, en AIR.id is dat blok id-nummer (nul, eigenlijk).

Natuurlijk, dit is niet perfect, ofwel, omdat het niet zal bruggen boven water trekken. Om dit te corrigeren die u introduceren of en verander de als regel aan:

 if belowBlock == AIR.id or belowBlock == WATER_FLOWING.id or belowBlock == WATER_STATIONARY.id: 

Als u wilt, kunnen kinderen zelfs magma toevoegen.

Er is één laatste beetje van magie, en dat is de meest magische van alle. De brug zou kunnen zelf achter de speler wissen. Te dien einde, zou u moeten invoeren van lijsten. Of u dit wilt doen, hangt af van het niveau van uw leerlingen. Als u wilt om het te doen, dan opslaan verleden speler posities in een lijst opgeslagen.

 from mc import * from time import * mc = Minecraft() saved = [] while True: position = mc.player.getTilePos() belowBlock = mc.getBlock(position.x, position.y-1, position.z) if belowBlock == AIR.id or belowBlock == WATER_FLOW.id or belowBlock == WATER_STATIONARY.id: mc.setBlock(position.x, position.y-1, position.z, STAINED_GLASS_BLUE) saved.append(position) if len(saved) > 10: firstPosition = saved.pop(0) mc.setBlock(firstPosition.x, firstPosition.y-1, firstPosition.z, AIR) sleep(0.2) 

Als u de code toevoegt, uitleggen. Je begint een lege lijst met opgeslagen = []. Dan u standpunt toe te aan het einde van de lijst voegen zijn, en als de lijst heeft meer dan 10 exemplaren in, je knallen uit het eerste item en tekening lucht eronder (u opslaat speler, geen brug, posities).

Er zijn nog onvolkomenheden. Bijvoorbeeld, als de brug op water wordt getekend, zal deze worden hersteld met lucht. Tot vaststelling van die misschien wel een uitdaging voor de slimmer studenten.

Gerelateerde Artikelen

3D game-design zomer kamp klasse met AgentCubes

3D game-design zomer kamp klasse met AgentCubes

Ik leerde enkel een vijf-daagse 1,5-uur-per-dag zomer kamp mini-cursus op spel programmeren met behulp van AgentCubes voor begaafde kinderen als onderdeel van de Baylor University voor jongeren, op het midden - en middelbare school niveau. Meeste kin
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
Python coding for Minecraft

Python coding for Minecraft

Dit Instructable laat zien hoe te installeren en gebruiken van een mod die ik schreef waarmee u controle van Minecraft met python scripts. Ik zal richten op Windows, maar OS X en Linux net zo goed moet werken.Python scripts kunnen genereren netjes in
Met behulp van IPC voor draadloze codering met Intel Galileo

Met behulp van IPC voor draadloze codering met Intel Galileo

IntroductieHet doel van dit Instructable is om te illustreren hoe u kunt instellen en gebruiken van IPC (interproces communicatie) tussen een Python-script en de uitvoerende schets op het Intel Galileo bord. Naast het verstrekken van de source code z
Vul een Minecraft varken met Minecraft

Vul een Minecraft varken met Minecraft

- of iets anders dat u wilt plaatsen op een flash drive. Het station wordt verborgen in been van dit papier-en-styrofoam Minecraft varken.Stap 1: Instrumenten en materialen De sleutel tot dit project is het varken papercraft door chhalo gevonden hier
Leren logica Gates met Minecraft

Leren logica Gates met Minecraft

logica Gates zijn een essentieel onderdeel te maken van de computers. Ze kunnen gemakkelijk worden weergegeven met behulp van minecraft de redstone functie. Met behulp van Minecraft is een geweldige manier om te testen elektronica alvorens fysiek hen
Hoe maak je lift met Minecraft 1.9 opdracht blokken

Hoe maak je lift met Minecraft 1.9 opdracht blokken

In Minecraft 1.9 nieuwe opdracht blokken kan worden gebruikt voor het maken van liften. U typt de verschillende opdrachten om de lift voor beweging die u wilt beheren. Deze tutorial vertelt in Minecraft 1.9 hoe met opdracht blokken maken van de lift.
Super gemakkelijk e-codering met behulp van Gmail, Firefox en Windows

Super gemakkelijk e-codering met behulp van Gmail, Firefox en Windows

dit is een instructable met een video tutorial die hoe leert te installeren GPG4win en FireGPG op uw computer om te verzenden en ontvangen van gecodeerde e-mail via Gmail.Ik maakte deze tutorial om te leren van vrienden en collega's hoe te opstelling
Hoe maak ik spelen zwaard interactie met Minecraft met Makey Makey

Hoe maak ik spelen zwaard interactie met Minecraft met Makey Makey

Mijn 8 - jarige dochter en ik onlangs deelgenomen aan een Makey Makey demonstratie op een lokale Maker-ruimte. Ik was verbaasd over hoeveel ze genoten van de gebeurtenis als ze meestal niet van technologie houdt. Deel weg ging via de lamp klikte op v
Zomer kamp ideeën

Zomer kamp ideeën

Voordat u onze volgende Instructable maakt, vonden wij het belangrijk om te kijken naar een snelle geschiedenis van de vlucht.De vroegste die we over vlucht vinden konden is Icarus en Daedalus ongeveer 1000 voor Christus. Het uitgebreide labyrint Dae
Python programmeren - met "IN" de instructie

Python programmeren - met "IN" de instructie

Korte Python programma dat aantoont van de verklaring van de "IN", waar men zien kan als er een match voor een woord in een bepaalde tekenreeks is. Ook wordt de "split" methode.Programma is als een .py-bestand bijgevoegd.
Python codering

Python codering

Vandaag zal ik u tonen hoe te maken van een eenvoudige "ghost spel" in python.Ik ben ervan uitgaande dat u python-zo niet, Klik hier.Scroll naar beneden en zoek naar "python 3. #. #". Het nummer moet een drie vooraan, maar de anderen n
BMW Diesel Injector codering met DIS v44

BMW Diesel Injector codering met DIS v44

Hoe te hercoderen injectoren op een BMW diesel omhoog tot 12/2005 met de DIS-software en een USB-OBD-kabel.
Wachtwoord een usb verdrijven met codering met een batch-bestand

Wachtwoord een usb verdrijven met codering met een batch-bestand

een programma dat een gebruiker in een station zonder niet zal lateneen wachtwoord en een eigenaarsbestand zal tonen dat u naar believen kunt wijzigenDit zal u tonen hoe het programma dat ik met gemak gemaakt heb te gebruikenStap 1: stap 1 downloaden