——坐标——
这个很熟悉吧,就是坐标而已。“x”就是X坐标,“y”就是Y坐标,“z”就是Z坐标。
那么举个栗子:
@e[x=1,y=60,z=30]
这个意思是设定基准点为(1,60,30)。什么是基准点呢?我们在第七章中了解到指令具有三要素:指令执行者、指令执行的地点和参数。
其中,指令执行的地点也可以叫做指令执行的基准点,简称执行点。
所以说?
你是不是以为这三个用于确定位置的参数就是用来确定这个『指令执行的基准点』?当然不是确定这个基准点啦。实际上,除了这个基准点外,目标选择器中还有一个特殊的基准点。这个基准点只有一个用处:用于给目标选择器中的某些参数提供中心。而这个基准点,就是通过x、y、z三个参数确定的(如果没有用这三个参数确定,那么默认是采用指令执行的地点)。
那么到底是哪些参数需要用到这个基准点呢?接下来你就知道了。
对了,在基岩版,x、y、z三个参数的值是可以使用相对坐标的。比如:
@e[x=~1,y=~,z=~]
这将会设定基准点在指令执行位置往东一格的地方。
——距离——
使用圆规画圆,首先需要找到一个圆心,然后确定圆的半径,最后旋转360°就画出了一个圆。
在Minecraft中,使用距离参数确定选择实体的范围,本质上就是在画一个圆(实际上是个球)。这个圆的圆心就是上面那三个参数确定的基准点,圆的半径则是需要使用r或是distance参数确定。
这章没有结束,请点击下一页继续阅读!
比如:
@a[x=23,y=65,z=-33,r=10]——Java1.13以下和基岩版
@a[x=23,y=65,z=-33,distance=..10]——Java1.13及以上
这个目标选择器的意思是:以坐标(23,65,-33)为基准点,范围10格内的所有玩家
但如果我们要这范围10格以外的玩家怎么办?这样做:
@a[x=23,y=65,z=-33,rm=10]——Java1.13以下和基岩版
@a[x=23,y=65,z=-33,distance=10..]——Java1.13及以上
这个目标选择器的意思是:以坐标(23,65,-33)为基准点,范围10格外的所有玩家
可惜起点并不能放图,不然这用图表示会更好。
我们可以总结出r和rm的作用:
r参数的作用是:选取所有距离基准点小于R格的实体
rm参数的作用是:选取所有距离基准点大于RM格的实体
更高级一点,你还可以r和rm一起用,比如:
@a[x=23,y=65,z=-33,r=10,rm=5]——Java1.13以下和基岩版
@a[x=23,y=65,z=-33,distance=5..10]——Java1.13及以上
这样子可以选取距离基准点大于5格但小于10格的玩家(相当于画两个圆组成一个圆环,然后选取圆环内部及边缘的实体)。
你也可以:
@a[x=23,y=65,z=-33,r=10,rm=10]——Java1.13以下和基岩版
@a[x=23,y=65,z=-33,distance=10]——Java1.13及以上
这样子可以选取距离基准点10格的玩家(注意,只能是10格,多一点少一点都不行)。
需要注意的是,R必须大于等于RM,不然什么也选不中。
r和rm毕竟是基岩版和Java1.13以下版本用的,在Java版1.13及以上版本使用的distance,又是怎么用的呢?
其实上面讲r和rm时,顺带列出来相同用法的distance,就已经告诉你distance的四种用法了。
如果你还不清楚,我们就将R和RM两个参数值代入到distance,来告诉你distance到底怎么用:
[distance =..R]——选取所有距离基准点小于R格的实体
[distance =RM..]——选取所有距离基准点大于RM格的实体。
[distance =RM..R]——选取所有距离基准点大于RM格小于R格的实体。
[distance =R|RM]——选取所有距离基准点RM(R)格的实体。
发现规律了没有?那两个点在数字左边,就代表小于X格的实体;在右边,即大于X格的实体;在两个数值中间,就代表距离在这两个值中间的实体;没有那两个点,只有一个数值,那么就只代表距离X格的实体。
(立方体范围)
使用/fill确定的立方体范围很好理解,而目标选择器的立方体范围......
因为它并不是让你找两个点......
而是,以基准点分别向三个方向延伸多少格构成的立方体!
(Mojang本来这么做是为了相对坐标,只不过这就导致使用绝对坐标时很头疼)
举个最简单的例子:
@a [x=0,y=0,z=0,dx=10,dy=10,dz=10]
这个目标选择器的意思是:
选取从(0,0,0)到(10,10,10)构成的立方体内的所有玩家。
更深一层的意思是:
以基准点(0,0,0)向正X轴延伸10格,正Y轴延伸10格,正Z轴延伸10格所构成的立方体内的所有玩家。
但一般来说,基准点可不会是这么简单的三个数值。所以我们使用dx、dy、dz时,必须要掌握一个技术:将/fill构成立方体的两点坐标转化为目标选择器的基准点和延伸格数。
将/fill构成立方体的两个坐标记为:
A?=(x?,y?,z?)
A?=(x?,y?,z?)
设定A?为基准点,即:
[x=x?,y=y?,z=z?]