第一中文网

第二十五章 更加精确的目标选择器 上 (第3/5页)

天才一秒记住【第一中文网】地址:www.dyzww.cc

m=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?]

A?-A?,得:

A?=(x?-x?,y?-y?,z?-z?)

这个结果就是dx、dy、dz的值了:

[x=x?,y=y?,z=z?,dx=x?-x?,dy=y?-y?,dz=z?-z?]

举个例子:

A?=(287,65,122)

A?=(300,69,24)

就可以得出:

[x=287,y=65,z=122,dx=13,dy=4,dz=-98]

这样子,以后我们就不用刻意去记到底要延伸多少格了(除了x、y、z并没有指定的情况下,这时候就要以相对坐标的思维去思考了

本章未完,请点击下一章继续阅读!若浏览器显示没有新章节了,请尝试点击右上角↗️或右下角↘️的菜单,退出阅读模式即可,谢谢!

如遇章节错误,请点击报错(无需登陆)

新书推荐

都市超品仙医 活在两个世界 大秦:这个太子总想着造反 与其说瞎话不如 穿越万界:神功自动满级 诛神乾坤 多子多福,仙女都被他抢了怎么办