Visa meny
Dölj meny

Minecraft – Sandspel

Låt oss prova att skriva ett litet spel!
Spelet går ut på att låta bli att bli träffad av fallande sandblock. Var femte sekund skapas ett nytt sandblock 25 steg rakt ovanför spelaren. Dessa ramlar sedan ner, och blir spelaren träffad är spelet slut.

Skapa en ny Python-fil från ”File” och ”New file”.

Skriv in följande kod:

from mcpi import minecraft
mc = minecraft.Minecraft.create()

from time import sleep
mc.postToChat("Get ready!")
sleep(5)
pos = mc.player.getTilePos()

while mc.getBlock(pos.x, pos.y, pos.z) != 13:
    mc.setBlock(pos.x, pos.y + 25, pos.z, 13)
    sleep(1)
    pos = mc.player.getTilePos()

mc.postToChat("Got You!")

Spara filen som sandstorm.py och testkör genom att gå på ”Run” och välj ”Run module”.

Förklaring av koden

Som vi vet sedan tidigare är de två första raderna för att kunna komma igång med programmering mot Minecraft.

from time import sleep gör det möjligt att använda funktionen sleep. Sleep gör att programmet väntar en stund. Skriver du sleep(1) väntar den en sekund, skriver du sleep(2) väntar den två sekunder, och så vidare.

mc.postToChat(”Get ready!”) skriver ut ett start-meddelande på skärmen för att berätta att spelet strax startar.

while betyder ”Gör något så länge som…”. Den fortsätter spelet så länge som ett block av typen 13 (som är sand) inte är på samma ställe som spelaren – det vill säga när ett sandblock har ramlat ner till samma postion som spelaren.

mc.setBlock(pos.x, pos.y + 25, pos.z, 13) skapar ett nytt block precis 25 steg rakt ovanför där spelare står. Om du kommer ihåg så är pos.x höger/vänster, pos.z är upp/ner och pos.z är framåt/bakåt.

sleep(1) väntar en sekund innan spelet fortsätter.

Och slutligen läses spelarens position in på nytt, så att block fortsätter att falla mot spelaren, även om denne har flyttat på sig.

Redo för en liten utmaning? Kan du vidareutveckla spelet så att den även gör fölande saker?

  • Räknar ner innan spelet startar, så att det den säger ”Get Ready” följt av en nedräkning varje sekund – ”5…”, ”4…”, ”3…”, ”2…”, ”1…”, ”Go!!”
  • Räknar hur många sekunder spelaren har klarat sig, och när spelet är slut skriver ut ”You made it for 34 seconds!”

Prova gärna på egen hand – men vill du ha tips så klicka på knappen här under.