【Minecraft】城壁を作ってみる

ピラミッドができましたので、それをちょっと応用して城壁を作ります。かっこいい城壁を作ってみたいですが、いきなりは難しいので、簡単だけどそれなりにかっこよく見える城壁に挑戦します。

イメージは、ヨーロッパの戦闘用のお城で敵の侵入を防ぐことができるぐらい高く、四角形で囲む城壁です。上部は高い部分と低い部分があり、低い部分には松明なんかもおいてみましょう。

では、いきなりのコードです。

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

import server
import sys



mc = minecraft.Minecraft()
mc.postToChat("Wall!")
playerPos = mc.player.getPos()
mc.player.setRotation(0)

width = 31
height = 6
org_x = playerPos.x + 5
org_y = playerPos.y
org_z = playerPos.z + 5

# X軸側の壁(手前)
for y in range(0, height):
	for x in range(1, width):
            mc.setBlock(
                org_x + x,
                org_y + y,
                org_z,
                block.STONE_BRICK)
for x in range(1, width, 2):
	mc.setBlock(
		org_x + x,
		org_y + height,
		org_z,
		block.STONE_BRICK)
for x in range(2, width, 2):
	mc.setBlock(
		org_x + x,
		org_y + height,
		org_z,
		block.TORCH)

# X軸側の壁(奥)
for y in range(0, height):
	for x in range(1, width):
            mc.setBlock(
                org_x + x,
                org_y + y,
                org_z + width,
                block.STONE_BRICK)
for x in range(1, width, 2):
	mc.setBlock(
		org_x + x,
		org_y + height,
		org_z + width,
		block.STONE_BRICK)
for x in range(2, width, 2):
	mc.setBlock(
		org_x + x,
		org_y + height,
		org_z + width,
		block.TORCH)

# Z軸側の壁(手前)
for y in range(0, height):
	for z in range(1, width):
            mc.setBlock(
                org_x,
                org_y + y,
                org_z + z,
                block.STONE_BRICK)
for z in range(1, width, 2):
	mc.setBlock(
		org_x,
		org_y + height,
		org_z + z,
		block.STONE_BRICK)
for z in range(2, width, 2):
	mc.setBlock(
		org_x,
		org_y + height,
		org_z + z,
		block.TORCH)

# Z軸側の壁(奥)
for y in range(0, height):
	for z in range(1, width):
            mc.setBlock(
                org_x + width,
                org_y + y,
                org_z + z,
                block.STONE_BRICK)
for z in range(1, width, 2):
	mc.setBlock(
		org_x + width,
		org_y + height,
		org_z + z,
		block.STONE_BRICK)
for z in range(2, width, 2):
	mc.setBlock(
		org_x + width,
		org_y + height,
		org_z + z,
		block.TORCH)

mc.postToChat("Wall constructed!")

城壁はSTONE_BLOCKで作ります。4辺の城壁を1つ1つ作ります。
まず、最祖にX軸方向にブロックを並べ、その上に1つ飛ばしでブロックを置き、壁上部の凹凸を表現します。低い箇所には松明を置きます。
同じことをZ軸方向に対しても行い、ぐるっと囲む城壁の完成です。

このコードを、例えばWall.pyなどの名前でmcipy`フォルダに保存し、Minecraftのゲーム画面のチャットから、

/py wall

と入力すると、次のような城壁ができるはずです。簡単にできますが、それなりにかっこよく見えますね。

Add a Comment

メールアドレスが公開されることはありません。