前言
之前我们讲了一些关于mc的基本设置,如果有问题先看这里。
这部分我们讲一下如何将一棵树扫描成csv文件。
这样做的意义很明显,我们可以在任意一个地方读取这个文件,并创建一个一模一样的树。
也不一定是树,也可以是林地府邸、海底神殿,甚至是迪哥的绿宝石城堡。
csv文件的话,就是用逗号分隔的一个个数据,然后的话,可以第一行有一个每一列的内容,有一点像excel文件。
实现
代码:
"""扫描一定范围内的方块,存入csv文件"""
import mcpi.minecraft as minecraft
mc = minecraft.Minecraft.create()
FILENAME = "tree.csv"
SIZEX = 5
SIZEY = 10
SIZEZ = 5
def scan(FILENAME,originx,originy,originz):
f = open(FILENAME,"w")
for y in range(SIZEY):
# 按照y一层层的切片
f.write("\n")
for x in range(SIZEX):
line = ""
for z in range(SIZEZ):
block = mc.getBlock(originx+x,originy+y,originz+z)
if line:
line += ","
line += str(block)
f.write(line+"\n")
f.close()
pos = mc.player.getTilePos()
scan(FILENAME,pos.x-(SIZEX/2),pos.y,pos.z-(SIZEZ/2))
这里我们是以自身为中心,向上10格的位置。
函数内部,首先打开文件,然后一层层的循环,每一层之间用换行分隔。
这里我们使用getblock函数,传入坐标返回方块的id。
最终效果:
然后的话,这篇博客讲述了如何读取一个csv文件。