最近写得有点实在累了,等想写的时候再来继续我的教程吧,今天直接上一个小房子的代码,这样大家也可以在这个好大的世界中有一个温暖的安身之处。
#连接到 Minecraft
from mcpi.minecraft import Minecraft
import time
mc = Minecraft.create()
#设置世界不可破坏
mc.setting("world_immutable",True)
#指定一个世界的位置
x = 184
y = 66
z = 385
#造房子,造房子用砖头1
mc.setBlocks(x,y,z,x 8,y 6,z 8,1)
mc.setBlocks(x 1,y 1,z 1,x 7,y 6,z 7,0)
#造房顶,for ...in range(n)是一个控制次数的循环,n就是循环的次数,i的值为0至n-1
for i in range(6):
mc.setBlocks(x,y 6 i,z i-1,x 8,y 6 i,z 9-i,1)
for i in range(5):
mc.setBlocks(x 1,y 6 i,z i,x 7,y 6 i,z 8-i,0)
#房顶安装灯(萤石89),萤石夜里会发光
mc.setBlocks(x 1,y 6,z,x 7,y 6,z,89)
mc.setBlocks(x 1,y 6,z 8,x 7,y 6,z 8,89)
#楼梯,楼梯用的是鹅卵石4
mc.setBlocks(x 1,y,z-1,x 4,y,z 1,4)
#窗户,玻璃的代码是102
mc.setBlocks(x,y 2,z 3,x,y 4,z 5,102)
mc.setBlocks(x 3,y 2,z 8,x 5,y 4,z 8,102)
mc.setBlocks(x 5,y 2,z,x 6,y 3,z,102)
#火炉,87是末地基岩,只有末地基岩上燃烧的火(51)才一直不会熄灭,普通的火会一会儿就熄灭
mc.setBlocks(x 7,y 1,z 3,x 7,y 3,z 5,1)
mc.setBlocks(x 7,y 1,z 3,x 7,y 1,z 5,87)
mc.setBlocks(x 7,y 2,z 4,x 7,y 2,z 4,51)
#制作动态的门,如果在台阶上,门开,如果不在,门关。这里的while True,相当于scratch中的重复执行
while True:
#获得角色的位置
pos = mc.player.getTilePos()
posx = pos.x
posy = pos.y
posz = pos.z
#如果角色脚下的方块是鹅卵石,那么开门,否则就关门(木头17)
if mc.getBlock(posx,posy-1,posz) == 4:
mc.setBlocks(x 2,y 1,z,x 3,y 3,z,0)
time.sleep(1)
else:
mc.setBlocks(x 2, y 1, z, x 3, y 3, z, 17)