Skip to content

Latest commit

 

History

History
166 lines (106 loc) · 6.38 KB

File metadata and controls

166 lines (106 loc) · 6.38 KB

Pythonプログラミングインタフェースを使用する

Minecraftを走らせて世界を創り上げたら、Tabキーを押してあなたのマウスを解放します。アプリケーションメニューからPython 3を開き、ウィンドウを左右に移動させます。 コマンドを直接Pythonウィンドウに入力するか、ファイルを作成してコードを保存してもう一度実行することができます。

ファイルを作成する場合は、[ファイル]> [新規作成]、[ファイル]> [保存]の順に選択します。ホームフォルダまたは新しいプロジェクトフォルダに保存することをお勧めします。

まず、Minecraftライブラリをインポートし、ゲームへの接続を作成し、画面に「Hello world」というメッセージをポストしてテストします。

from mcpi.minecraft import Minecraft

mc = Minecraft.create()

mc.postToChat("Hello world")

コマンドを直接Pythonウィンドウに入力する場合は、各行の後にEnterキーを押してください。ファイルの場合はCtrl + Sで保存し、F5で実行します。コードが実行されると、ゲームの画面にメッセージが表示されます。

現在地を見つける

現在地を見つけるには、次のように入力します。

pos = mc.player.getPos()

posにはあなたの場所が含まれています。座標セットの各部分にpos.xpos.ypos.zでアクセスします。

別の方法として、座標を別々の変数にするには、Pythonのアンパック手法を使用するのが良い方法です。

x, y, z = mc.player.getPos()

x, y, z には、それぞれの位置座標が含まれています。 x, z は歩行方向(前後左右)、 yは上下方向です。 getPos()はその時点のプレーヤーの位置を返します。位置を移動する場合は、関数を再度呼び出すか、格納された位置を使用する必要があります。

テレポート

あなたの現在の場所を見つけるだけでなく、テレポートする特定の場所を指定することもできます。

x, y, z = mc.player.getPos()
mc.player.setPos(x, y+100, z)

これはあなたのアバターを空中の高さ100のところに運びます。これは、空の真ん中にテレポートして、あなたがこの世界を始めた場所に戻ることを意味しています。

別の場所にテレポートしてみてください!

ブロックを置く

mc.setBlock()を使用して、与えられた座標セットに1つのブロックを置くことができます。

x, y, z = mc.player.getPos()
mc.setBlock(x+1, y, z, 1)

あなたの立っている所の前に石ブロックが現れます。それがあなたのすぐ前になければ、それはあなたの横にあるかもしれません。Minecraftウィンドウに戻り、あなたの目の前に灰色のブロックが現れるまで、マウスを使ってその場で回転して見てください。

set blockに渡される引数はxyzidです。(x, y, z)は世界の位置を指しています(プレイヤーがx+1で立っている場所から1ブロック離れて指定されています)。idは配置したいブロックのタイプを表します。1は石です。

あなたが試すことができる他のブロック:

空気: 0
草:   2
土:   3

ブロックが見えたら、別のものに変更してみてください:

mc.setBlock(x+1, y, z, 2)

目の前で灰色の石ブロックの変化が見られるはずです!

ブロック定数

名前を知っていれば、ブロックを設定するためにinbuiltブロック定数を使うことができます。しかし、最初に別のimport行が必要になります。

from mcpi import block

今度はブロックを配置するために次のように書いてください。

mc.setBlock(x+3, y, z, block.STONE.id)

ブロックIDは簡単に推測することができます。すべてのCAPSを使用するだけですが、ここではその名前に慣れさせるためのいくつかの例を示します。

WOOD_PLANKS
WATER_STATIONARY
GOLD_ORE
GOLD_BLOCK
DIAMOND_BLOCK
NETHER_REACTOR_CORE

変数としてブロックする

ブロックのIDを知っていれば、それを変数として設定すると便利です。名前または整数IDを使用できます。

dirt = 3
mc.setBlock(x, y, z, dirt)

または

dirt = block.DIRT.id
mc.setBlock(x, y, z, dirt)

特殊ブロック

追加のプロパティを持ついくつかのブロックがあります。例えば、色を指定できる追加の設定を持つWoolです。これを設定するには、setBlockのオプションの第4パラメータを使用します。

wool = 35
mc.setBlock(x, y, z, wool, 1)

ここで、第4パラメータ1は、羊毛の色はオレンジ色に変わります。4番目のパラメータがなければ、デフォルト(0)に設定されます。これは白です。他にもいくつかの色があります。

2: Magenta
3: Light Blue
4: Yellow

さらにいくつかの数字を入力してブロックの変化を見てみましょう!

追加のパラメータを有する他のブロックは、木材(17)であるオーク、トウヒ、白樺や、背の高い草(31)である低木、草、シダ、さらに松明(50)は東、西、北、南を指します。 もっと。 詳細については、API reference を参照してください。

複数のブロックを設置する

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)

このプログラムは、10×10×10の立方体の中を石で埋めます。

setBlocks関数でより大きな体積の直方体を作成できますが、生成に時間がかかることがあります!