Gadget Minecraft Programming Python プレイヤー位置&block配置

【Minecraft】Pythonでブロックを並べてみる!!その1

今日はMinecraftでPythonを使ってブロックを並べてみましょう!!

まず最初にブロックを1個置きます。

1.ブッロクを置く

必要なモジュールは「block」なので、上のスクリプトでmcpiからblockをimportで読み込んで、それをasで別名blockとする。

import mcpi.block as block

3行目はminecraftと接続する呪文。

4行目は後述しますが、プレイヤーの現在位置を取得する。

5行目はブロックを配置するために必要なメソッド(関数):setblock()を使って、変数posに格納されたプレイヤーの座標のx,y,zに2行目で指定したasでblockのモジュールから「STONE」を指定して1個置きます。

setblock(x,y,z,block.STONE)

ちなみにasを使わないと下のようなスクリプトと同じ意味になります。

5行目に注目。

setblock(x,y,z,mcpi.block.STONE)

STONEだけ指定するとERRになります。

setblock(x,y,z,STONE) → ERR

さらに、各ブロックはIDを持ってますのでこんな指定も出来ます。

例えば 石 = STONE はIDが「1」です。

setblock(x,y,z,block.Block(1))

下記がblock.pyに記載されているblockのIDの一部です。

さらにこんな書き方も出来ます。

asの指定なしにblockモジュールだけ呼び出して、ブッロクのIDの数字だけ指定します。

setblock(x,y,z,1)

では次に、座標x,y,zはプレイヤーの座標にするための内容に入ります。

2.プレイヤーの位置を取得する

必要なメソッド:getTilePos()

使い方:プレイヤーの位置をブロックの位置で取得します。

例 : pos = minecraft.player.getTilePos()

ここで変数 posにどんな座標値が格納されているか確認しましょう。

上のスクリプトの1、2はもう呪文のようなもんで説明済みなので割愛。

4行目でプレイヤーの位置情報を変数posに格納してます。

5では変数posをstrで囲み文字に変換しpostToChatでMinecraftのチャットにこのposの情報を表示させてます。

このスクリプトに「player.py」と名前をつけてminecraft上で実行してみます。

チャットでプレイヤーの現在位置が表示されました。

x:267 ,y:0 ,z:-20

ではこの座標にブッロクを置いてみましょう。

はい、石が1個置かれました!!

ここでもう一度自分の座標を確認してみると・・・

さっきの「player.py」をもう一度実行してみます。

x:266 ,y:0 ,z:-20 ですね。

さっき 【x:267 ,y:0 ,z:-20 】だったのでx座標が1個手前になっています。

スクリプトで自分の座標を起点に石を置いているので、石が自分の今いる位置に置かれました。

そのとたんプレイヤーが現れた石によって手前に弾かれているので座標が変わってます。

おもしろですよね、これ。

ということで今回はプレイヤーの位置の取得と石の種類、石の配置についてわかりました。

次回はさらにブロックの制御をやってみます。

-Gadget, Minecraft, Programming, Python, プレイヤー位置&block配置