raspiには、minecraft pi をいう機能制限版のMineCraftがインストールされています。されていなければ、インストールすることもできます。
$ sudo apt-get update $ sudo apt-get install minecraft-pi
デスクトップの “Menu – Games” にMinecraft Piが入ってますので、起動してみます。
起動できれば、terminalからpython2を起動します。
コードは、全てpython2で実行します。
Hello worldをスクリーンに表示
from mcpi import minecraft mc = minecraft.Minecraft.create() mc.postToChat("Hello world")
自分がどこにいるか調べる
pos=mc.player.getPos()
テレポート
自分の位置の空中100のところにテレポート
x, y, z = mc.player.getPos() mc.player.setPos(x, y+100, z)
ブロックを置く
自分が立っている場所の隣に石のブロックを置く
構文:mc.setBlock(x, y, z, id)
idは、空気:0 , 草:2 , 土:3
他にもidがあるのかな?
x, y, z = mc.player.getPos() mc.setBlock(x+1, y, z, 1)
変数としてのブロック
idを変数に格納して利用できる
dart=block.DART.id mc.setBlock(x, y, z, dart) idがわかっている場合 dart=3 mc.setBlock(x, y, z, dart)
特殊なブロック
色を付けることが出来る特殊なブロックがある。例えば、”wool”
これは、追加のプロパティをもっています。
設定するには、4つ目のパタメータを使う。
0:白 . 1:オレンジ . 2:マゼンダ , 3:ライトブルー , 4:黄色
wool=35 mc.setBlock(x, y, z, wool,1)
複数のブロックを置く
setBlockで1つのブロックを置くのと同じように、setBlocksで複数置くことが出来る
stone=1 x, y, z = mc.player.getPos() mc.setBlocks(x+1, y+1, z+1, x+11, y+11, z+11, stone)
これらを利用して、命令を組み合わせると、自分が歩いたところにブロックを置くことも出来る。
from mcpi import minecraft from time import sleep mc = minecraft.Minecraft.create() flower = 38 while True: x, y, z = mc.player.getPos() mc.setBlock(x, y, z, flower) sleep(0.1)
while True: を利用したので、永遠に花を置いていきます。Pythonウインドウで”Ctrl + c”を押すと止められます。
ある特定のブロックの歩いている時だけ、花を落とすには、
getBlockを使い、ブロックの種類を判定しながら、ブロックを配置する命令を記述します。
x, y, z = mc.player.getPos() # プレイヤーの位置 (x, y, z) this_block = mc.getBlock(x, y, z) # ブロックのID print(this_block) while True: x, y, z = mc.player.getPos() block_beneath = mc.getBlock(x, y-1, z) print(block_beneath) grass = 2 flower = 38 while True: x, y, z = mc.player.getPos() # プレイヤーの位置 (x, y, z) block_beneath = mc.getBlock(x, y-1, z) # ブロックのID if block_beneath == grass: mc.setBlock(x, y, z, flower) sleep(0.1)
自分が立っているところが草じゃ無ければ、草に変えるには、このよう変更すればいい。
while True: x, y, z = mc.player.getPos() # プレイヤーの位置 (x, y, z) block_beneath = mc.getBlock(x, y-1, z) # ブロックのID if block_beneath == grass: mc.setBlock(x, y, z, flower) sleep(0.1)
TNTブロック
TNTブロックを置くには、このようにすればよいが、爆発しません。
tnt = 46 mc.setBlock(x, y, z, tnt)
爆発するブロックを置くには、tntのあとに、” ,1″を付けます。
tnt = 46 mc.setBlock(x, y, z, tnt, 1)
TNTブロックのビルを作って爆発させてみる。
tnt = 46 mc.setBlocks(x+1, y+1, z+1, x+11, y+11, z+11, tnt, 1)
基礎的なことは、この程度です。
ブロックの種類や色など他にも色々あるようですから、詳しくは、APIリファレンスを見よう。