在我的世界中,有六个方向:x+x-,y+y对照现实中的东西南北。

那我们如何在我的世界中辨别方向呢?

在mcpi中有一个非常厉害的东西叫events,它能够监听三种类型的事件:
1.events.pollBlockHits() || 2.events.pollChatPosts() || 3.events.pollProjectileHits()
1号是方块的敲击事件监听,2号是信息事件监听,3号是发射物事件监听

咱们今天用第一个方块敲击事件的监听,具体怎么用咱们看一下:

#首先导包
import mcpi.minecraft as mmc
mc = mmc.Minecraft.create()
event = mc.events.pollBlockHits() #通过mc调用这个事件的监听
for e in event:  #我们是通过for循环来遍历拿出我们监听到的事件。这里的  e  就是我们拿到的事件。
    pass  #这不用管,为了代码完整性占位置的。没用

在我的世界中咱们玩家自己有一个坐标我们把它当做x,y,z;假如我们敲了一块我们面前的一个方块,那这个方块的坐标我们记作ex,ey,ez。

回到一开始的问题,我们如何判断面向的方向呢,上面说到我敲的是一块我面前的方块,也就是他在我前面。假设我面向x轴的正方向,那我面前的方块的x坐标是不是一定要比我的大,反之我面向x轴的负方向,我面前的方块坐标一定就比我小。

我们就可以利用这个特点来实现判断方向

import mcpi.minecraft as mmc
mc = mmc.Minecraft.create()
x,y,z = mc.player.getTilePos()

while 1:
    for e in mc.events.pollBlockHits():
        if e.pos.x > x : #!判断敲击方块的x坐标是否大于玩家本身x坐标
            print('x+方向')
        elif e.pos.x < x :#!判断敲击方块的x坐标是否小于玩家本身x坐标
            print('x-方向') 
                            #!同理我们可以根据这个来判断出其他的方向
        elif e.pos.z > z:
            print('z+方向')
        elif e.pos.z < z:
            print('z-方向')
        elif e.pos.y > y:
            print('y+方向')
        elif e.pos.y < y:
            print('y-方向')
  • Avatar photo

    宁妄

    一个热爱自然却被困在代码世界的“人”

    Related Posts

    牛马耕地

    时空穿梭

    视频教程:

    发表回复

    您的邮箱地址不会被公开。 必填项已用 * 标注