MC-create第一节setBlock语句
第一。要想和我的世界进行连接必需导入mcpi库文件
import mcpi.minecraft as mmc #导入我的世界资源库并重命名为mmc
第二。我光导入了还不行,我得和我的世界创建一个联系
mc = mmc.Minecraft.create() #创建对象
第三。回忆一下题目,让咱们呢干啥来着,脚下如果是水的话换成冰块,我怎么知道我脚下是什么?我脚下在哪?我在哪?就咋用程序判断脚底下是不是水?
不着急,咱们一个一个来
首先这几个问题,以整体进度来看的话最好解决的应该是”你在哪“这个问题
那我在哪呢?
pos = x,y,z = mc.player.getTilePos() #获取玩家坐标,而且是脚步的位置
我们用这个方法可以知道我在哪,同时”我脚下在哪“这个问题也解决了,我的脚在x,y,z这个地方,众所周知y轴代表上下。那脚下就是x,y-1,z呗
那这就好办了,我知道水的id是9,现在我只需要知道什么方法能知道我脚下的坐标是啥方块不就行了吗,然后再来个对比,是9就换冰,不是就爱干啥干啥呗
那获取某个坐标方块信息的方法正好我有
block_id = mc.getBlock(x,y-1,z) #注意是y-1因为需要获取脚下我们踩得那个方块
接下判断我们踩得到底是不是
if block_id == 9: #如果踩得方块id为9的话
mc.setBlock(x,y-1,z,79) #踩得是9就在脚下放置一个79(冰块)
目前逻辑上的问题大概都解决了,但是还有个致命的问题,这程序用不了。没反应!因为我们缺少了能让他重复使用的指令while
while 1:
pos = x,y,z = mc.player.getTilePos() #!获取玩家坐标,存入x,y,z和pos中
block_id = mc.getBlock(x,y-1,z)#! 获取你脚下的方块信息存入bid
if block_id == 9: #如果踩得方块id为9的话
mc.setBlock(x,y-1,z,79) #踩得是9就在脚下放置一个79(冰块)
我们需要将获取坐标的程序、获取脚下方块id的程序判断以及更改脚下方块的程序放进while循环
完整程序:
import mcpi.minecraft as mmc #导入我的世界资源库并重命名为mmc
mc = mmc.Minecraft.create() #创建对象
while 1:
pos = x,y,z = mc.player.getTilePos() #获取玩家坐标,而且是脚步的位置
block_id = mc.getBlock(x,y-1,z)#! 获取你脚下的方块信息存入bid
if block_id == 9: #如果踩得方块id为9的话
mc.setBlock(x,y-1,z,79) #踩得是9就在脚下放置一个79(冰块)