Python på Minecraft Pi Edition

cropped-Pi-Edition-header1

Inledning

Minecraft Pi Edition är en gratis version av Minecraft för Raspberry Pi. Med Minecraft kan du skapa egna världar, bygga vad du vill, spela själv eller med andra över nätet. Minecraft Pi Edition är begränsat till kreativt spelläge och kartan är minsta möjliga.

Förutom att fungera på Raspberry Pi är Minecraft Pi Edition speciellt i det avseende att du kan kommunicera med spelet via ett speciellt API – genom att skriva program i programmeringsspråken Java eller Python kan du påverka och manipulera det som händer i Minecraft. Det kan vara allt från att skriva i spelets chatt till att bygga väldiga konstruktioner med olika block.

I detta blogginlägg kommer jag att ge några exempel på program skrivna i Python. Ett av syftena med Minecraft Pi Edition är att lära barn hur man kan påverka datorn och dess system genom att skriva egna program.

Installation

Minecraft Pi Edition kan du ladda hem här. På denna sida finns också en instruktion för hur installationen går till. Så här installerar du och startar Minecraft Pi Edition:

Börja med att starta det grafiska gränssnittet om du inte redan gjort det.

$ startx

Öppna en terminalemulator (genväg till LXTerminal finns på skrivbordet). Skriv in följande (det som står efter $ på varje rad):

$ wget https://s3.amazonaws.com/assets.minecraft.net/pi/minecraft-pi-0.1.1.tar.gz
$ tar -zxvf minecraft-pi-0.1.1.tar.gz
$ cd mcpi
$ ./minecraft-pi

Programexempel

Jag kommer att använda Python i exemplen jag visar. Inspiration kommer från boken Adventures in Raspberry Pi av Carrie Anne Philbin, som är väldigt bra om man vill lära sig mer. Bloggen Raspberry Pi Spy, är också bra. Man kan såklart även titta i själva programbiblioteken (t.ex. i mcpi/api/python/minecraft.py) för att lära sig mer.

När man kör programmen måste själva spelet vara igång och en värld måste vara skapad. Börja med att starta spelet och skapa en ny värld (Create new). Passa på att öppna två instanser av LXTerminal när du ska starta spelet.

I det andra terminalfönstret ska vi förflytta oss till mappen mcpi/api/python
$ cd ~
$ cd mcpi/api/python
(Ovanstående kodexempel förutsätter att du packat upp den nedladdade filen i din hemkatalog).

Programexempel 1: Text till chatten

Nu ska vi skriva ett första program och det gör vi genom att använda en texteditorn nano. Vårt program kommer att skriva ut en text till chatten i Minecraft.

$ nano textillchatt.py

Skriv in följande:

import mcpi.minecraft as minecraft
mc = minecraft.Minecraft.create()
msg = "Det har ar textraden som kommer att synas i spelet"
mc.postToChat(msg)

I exemplet ovan talar vi först om att vi vill använda oss av en modul, nämligen minecraft.

Raden under kopplar samman vårt program med själva spelet. (Skapar objektet mc).

I tredje raden deklarerar vi en variabel, nämligen “msg”. (Datatypen blir string).

På fjärde raden använder vi variabeln med mc.PostToChat.

Avsluta nano genom att trycka ned tangenterna CTRL+X, tryck sedan Y (som i yes) för att spara.

Programmet körs med följande kommando:

$ python texttillchatt.py

screen1_talktochat

Programexempel 2: Hitta spelaren

I Minecraft-världen orienterar man sig efter y, z, och x-koordinater. I det här programmet ska vi lära oss hur det funkar när man använder det i programmeringen.

Vi börjar med att starta en ny fil med nano:

$ nano hittaspelaren.py

Som i exempel 1 måste vi börja med att importera modulerna vi behöver.

import mcpi.minecraft as minecraft

import time

mc = minecraft.Minecraft.create()

time.sleep(1)

pos = mc.player.getPos()

mc.PostToChat("Du befinner dig x=" +str(pos.x) + ", y=" +str(pos.y) + ", z=" str(pos.z))

Avsluta nano genom att trycka ned tangenterna CTRL+X, tryck sedan Y (som i yes) för att spara.

Programmet körs med följande kommando:

$ python hittaspelaren.py

 

Programexempel 3: Gör en platt värld

Det kan vara praktiskt att ha en helt platt värld i Minecraft, särskilt om man vill bygga något specifikt. Jag hittade följande Python-program på Minecrafts forum. Detta program går såklart att anpassa precis som man vill.

import sys
import mcpi.minecraft as minecraft
import mcpi.block as block

mc = minecraft.Minecraft.create()
mc.setBlocks(-128,0,-128,128,64,128,0)
if(len(sys.argv) > 1):
bid = int(sys.argv[1])
else:
bid = block.GRASS.id

if bid < 0 or bid > 108:
bid = block.GRASS.id

mc.setBlocks(-128,0,-128,128,-64,128,bid)

Tänk på att intendera raderna under if, else (gör fyra mellanslag).

(Koden är skriven av: Snowbound)

 

Programexempel 4: Skapa en vägg av sten

Det finns flera exempel på hur man sätter ut block och flera block. Ett block sätter man ut genom följande syntax:

mc.setBlock(1, 10, 1, block.GOLD_BLOCK)

Först koordinaterna, sedan vilket block man vill sätta ut.

För att sätta ut flera block skriver man så här:

mc.setBlocks(1, 10, 1, 11, 20, 11, block.GOLD_BLOCK)

Denna kod skapar en kub på 10×10 block av guld.

Jag tänkte skriva ett program som skapar en vägg av guld. Så här blir det:

import mcpi.minecraft as minecraft

import mcpi.block as block

mc = minecraft.Minecraft.create()

mc.setBlocks (9, 1, 53,0, 10, 1, 43 block.GOLD_BLOCK)

 

Programexempel 5: Bygg en skyskrapa av glas, sten och luft

Tobias

Bloggande IT-bibliotekarie och linuxnörd. Brinner för frågor om fri programvara, personlig integritet på nätet och teknik som befriar snarare än stänger in.

Du gillar kanske också...

Lämna ett svar