面白いプログラミングをしてみます。
このコードを実行すると、
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | import mcpi.minecraft as minecraft import mcpi.block as block from mcpi.vec3 import Vec3 mc = minecraft.Minecraft() pos = mc.player.getTilePos() + Vec3( 3 , 0 , 0 ) #1 mc.setBlock( pos, block.WOOD ) #2 mc.setBlock( pos + Vec3( 0 , 1 , 0 ), block.WOOD ) #3 mc.setBlocks( pos + Vec3( - 2 , 2 , - 2 ), pos + Vec3( 2 , 2 , 2 ), block.LEAVES ) mc.setBlock( pos + Vec3( 0 , 2 , 0 ), block.WOOD ) #4 mc.setBlock( pos + Vec3( 0 , 3 , 0 ), block.WOOD ) #5 mc.setBlocks( pos + Vec3( - 1 , 4 , - 1 ), pos + Vec3( 1 , 4 , 1 ), block.LEAVES ) mc.setBlock( pos + Vec3( 0 , 4 , 0 ), block.WOOD ) #6 mc.setBlock( pos + Vec3( 0 , 5 , 0 ), block.LEAVES ) |
こんな感じで木を作ることができます。
setBlock(), setBlocks()でオークの原木、オークの葉を順番に置いています。
setBlocks()は2つの位置を指定して、直方体にブロックを置く関数です。
ブロックの種別を変えたらどうでしょう。オークの葉を金ブロックに変えると
他にもカボチャのなる木、TNTのなる木などなど。マグマのなる木は危険です。
せっかくなので、色々な木を作るコードを関数にまとめてみます。
関数にまとめると
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | import mcpi.minecraft as minecraft import mcpi.block as block from mcpi.vec3 import Vec3 mc = minecraft.Minecraft() def createTree( start, wood = block.WOOD, leaf = block.LEAVES ): mc.setBlock( start, wood ) mc.setBlock( start + Vec3( 0 , 1 , 0 ), wood ) mc.setBlocks( start + Vec3( - 2 , 2 , - 2 ), start + Vec3( 2 , 2 , 2 ), leaf ) mc.setBlock( start + Vec3( 0 , 2 , 0 ), wood ) mc.setBlock( start + Vec3( 0 , 3 , 0 ), wood ) mc.setBlocks( start + Vec3( - 1 , 4 , - 1 ), start + Vec3( 1 , 4 , 1 ), leaf ) mc.setBlock( start + Vec3( 0 , 4 , 0 ), wood ) mc.setBlock( start + Vec3( 0 , 5 , 0 ), leaf ) createTree( mc.player.getPos() + Vec3( 1 , 0 , 1 ), block.WOOD, block.LEAVES ) createTree( mc.player.getPos() + Vec3( 10 , 0 , 1 ), block.WOOD, block.GOLD_BLOCK ) createTree( mc.player.getPos() + Vec3( 20 , 0 , 1 ), block.WOOD, block.TNT) createTree( mc.player.getPos() + Vec3( 30 , 0 , 1 ), block.WOOD, block.PUMPKIN_ACTIVE) createTree( mc.player.getPos() + Vec3( 40 , 0 , 1 ), block.WOOD, block.LAVA_STATIONARY) |
このように引数を変えるだけで色々な木(もう木じゃないけど)を簡単に作ることができるようになります。