Welkom op Codingkids

Programmeren voor kinderen

Plaats meerdere blokken

Met mc.setBlock() kon je één blokje plaatsen, met mc.setBlocks() kun je meerdere blokken plaatsen.

Tussen de haakjes ( ) kun je de begin positie aangeven met x, y en z, en daarachter de eindpositie met x, y en z. Tussen deze posities wordt alles opgevuld met blokken, je krijgt dus een massief blok.

x, y, z = mc.player.getPos() mc.setBlocks(x, y, z, x+9, y+9, z+9, 22)

Dit plaatst een 10 x 10 x 10 kubus met Lapis Lazuli.

Je kunt nog grotere dingen plaatsen met de setBlocks() functie maar het duurt wel langer voordat het geplaatst is!

Een holle kubus neerzetten

In plaats van een massieve kubus kun je ook een holle kubus neerzetten. We kunnen dit doen door de kubus op te vullen met lucht blokken. Voeg onderstaande regel toe aan je programma van de Lapis Lazuli kubus, en test het uit. (maak een opening in de kubus en kruip er maar in)

mc.setBlocks(x+1, y, z+1, x+8, y+8, z+8, 0)



Spelen met TNT blokken

Een interessant blok is TNT! Om een normaal TNT blok te gebruiken doe je:

tnt = 46 mc.setBlock(x, y, z, tnt)

Maar dit TNT blok is erg saai. Zet er maar een 1 achter dan wordt het leuk,0 betekent "Niet actief", 1 betekent "Klaar om te exploderen":

tnt = 46 mc.setBlock(x, y, z, tnt, 1)

Gebruik nu je zwaard en klik links op het TNT blok: het zal in een paar seconde exploderen!

Probeer nu eens een grote kubus van TNT blokken te maken!

tnt = 46 mc.setBlocks(x+1, y+1, z+1, x+11, y+11, z+11, tnt, 1)

Je ziet nu een grote kubus vol met TNT. Activeer de TNT door met het zwaard met linker muis op te klikken en loop gauw weg en bekijk de show! Er veranderd zoveel tegelijkertijd in het spel dat de grafische weergave het er moeilijk mee zal hebben.





Huizen bouwen

We hebben al ontdekt hoe je een massieve kubus neer kunt zetten en ook een holle kubus. We gaan nu van de holle kubus een huisje maken door op bepaalde plekken ramen te zetten en een deuropening te maken. Als we eenmaal het ontwerp voor één huisje hebben kunnen we ook heel makkelijk een hele straat vol met huisjes zetten.

We gaan eerst een functie schrijven voor het bouwen van een huis. Deze functie begint met def naam():Daaronder schrijf je alle stappen voor het maken van het huisje. Daarna kun je in je programma je functie aanroepen met naam()Hieronder zie je een voorbeeld.

def huis(): #maak een kubus mc.setBlocks(x, y, z, x+6, y+3, z+6, block.COBBLESTONE.id) #vul de kubus met lucht blokken mc.setBlocks(x+1, y, z+1, x+5, y+2, z+5, block.AIR.id) #plaats de ramen mc.setBlocks(x+1, y, z, x+1, y+1, z, block.GLASS.id) mc.setBlocks(x+1, y+2, z, x+1, y+2, z, block.GLASS.id) mc.setBlocks(x+5, y, z, x+5, y+1, z, block.GLASS.id) mc.setBlocks(x+5, y+2, z, x+5, y+2, z, block.GLASS.id) mc.setBlocks(x, y+1, z+1, x, y+2, z+2, block.GLASS.id) mc.setBlocks(x, y+1, z+4, x, y+2, z+5, block.GLASS.id) mc.setBlocks(x+1, y+1, z+6, x+2, y+2, z+6, block.GLASS.id) mc.setBlocks(x+4, y+1, z+6, x+5, y+2, z+6, block.GLASS.id) mc.setBlocks(x+6, y+1, z+1, x+6, y+2, z+2, block.GLASS.id) mc.setBlocks(x+6, y+1, z+4, x+6, y+2, z+5, block.GLASS.id) #opening voor de deur mc.setBlocks(x+3, y, z, x+3, y+1, z, block.AIR.id) #start je functie huis()

Nu kun je de functie huis()ook gebruiken in een herhaling zodat je in één keer een hele straat vol met huizen neer kan zetten:

for i in range(5): huis() x = x + 12

Probeer het maar eens! Probeer ook eens in plaats van steen Wol te gebruiken, hier zijn wel 16 kleuren van. Je kan bijvoorbeeld elk huisje een willekeurige kleur geven, dit noem je random.

Je moet bovenaan je programma de bibliotheek random importeren. Zet deze regel bovenaan: import random

Gebruik deze regel in je herhaling:

wolkleur = random.randrange(0,15)

En gebruik de variabele wolkleur in de eerste regel van je huis functie:

mc.setBlocks(x, y, z, x+6, y+3, z+6, block.WOOL.id, wolkleur)

Het hele programma voor gekleurde huizen

from mcpi.minecraft import Minecraft from mcpi import block import random mc = Minecraft.create() x, y, z = mc.player.getPos() wolkleur = random.randrange(0,15) def huis(): #maak een kubus mc.setBlocks(x, y, z, x+6, y+3, z+6, block.WOOL.id, wolkleur) #vul de kubus met lucht blokken mc.setBlocks(x+1, y, z+1, x+5, y+2, z+5, block.AIR.id) #plaats de ramen mc.setBlocks(x+1, y, z, x+1, y+1, z, block.GLASS.id) mc.setBlocks(x+1, y+2, z, x+1, y+2, z, block.GLASS.id) mc.setBlocks(x+5, y, z, x+5, y+1, z, block.GLASS.id) mc.setBlocks(x+5, y+2, z, x+5, y+2, z, block.GLASS.id) mc.setBlocks(x, y+1, z+1, x, y+2, z+2, block.GLASS.id) mc.setBlocks(x, y+1, z+4, x, y+2, z+5, block.GLASS.id) mc.setBlocks(x+1, y+1, z+6, x+2, y+2, z+6, block.GLASS.id) mc.setBlocks(x+4, y+1, z+6, x+5, y+2, z+6, block.GLASS.id) mc.setBlocks(x+6, y+1, z+1, x+6, y+2, z+2, block.GLASS.id) mc.setBlocks(x+6, y+1, z+4, x+6, y+2, z+5, block.GLASS.id) #opening voor de deur mc.setBlocks(x+3, y, z, x+3, y+1, z, block.AIR.id) for i in range(5): huis() x = x + 12 wolkleur = random.randrange(0,15)

Wolkenkrabber

Kun je met een kleine aanpassing van bovenstaand programma ook de huizen bovenop elkaar zetten?

minecraft python wolkenkrabber

Hint

Code







Je hebt nu wat geoefend met het plaatsen van massieve kubussen en ook holle gebouwen.

Het is tijd om naar de volgende les te gaan: Blokken plaatsen terwijl je loopt









Share on Facebook Share on Google+ Share on LinkedIn Share on Twitter





Ondersteun deze website!