天才一秒记住【第一中文网】地址:www.dyzww.cc
t
填eyes,代表你要让传送目标完成传送后面朝对方的眼睛,填feet,则代表面朝对方的脚。默认是朝向对方的眼睛,但你也可以改成看脚。
比如:
\/tp @s ~~~ facing entity @r feet
这将会让你随机看向某一个玩家的脚。
很简单吧。等等,不对,有些问题。
如果你确实按照上面的指令来,你就会发现你看到的并不是这位玩家的脚,而是和这位玩家的眼睛平视。
为什么?
如果你尝试将feet改成eyes,你就会发现你的视角竟然看向了这位玩家上方。
唉mojang,你这是不是bUG啊?设置为看脚,却看向眼睛;设置为看眼睛,却看向眼睛的上方。
其实这不是bUG,而是跟这个tp指令有关。
tp指令,说是『将一个实体传送到另一个实体或者是坐标』。其实更加确切地说,是这样的:
将一个实体的脚部传送到另一个实体的脚部或者是一个指定的位置。
也就是说,tp指令在传送实体时,其实是传送这个实体的脚部。
为什么呢?想想,如果tp是传送你的眼睛,那么你传送过去,身体是不是要埋半截在土里啊?如果tp是将你的脚传送到另外一个实体的眼睛,那么你传过去,你的脚是不是要踩在那个实体头上啊?
所以mojang为了使传送能够符合我们人的直觉,就将默认传送的部位设定为了脚。
因此,当tp的facing计算朝向的时候,也是以传送目标的脚的坐标(也就是你脚的坐标)来计算的。而如果你从你的脚看向对方的脚,是不是就是平视?看向对方的眼睛,是不是就要仰头?
并且,不管是基于眼睛还是基于脚来计算朝向,最终都会体现在玩家以及其他实体的头部(因为对于有人形的实体来说,头部的朝向决定了该实体的水平旋转角度和垂直旋转角度,而不是身体决定),所以就造成了上面奇怪的结果。
懂了吧?
第二个『安全检查』就更加简单了,你只需要选择是否开启即可(true或false)
如果开启安全检查,会发生什么呢?
其实这个安全检查很鸡肋,仅仅会检查传送目的地是否有足够的空间以防止你窒息,如果不会才会传送,但这并不能防止你掉进岩浆或摔死。
这些内容就是现在版本的tp和teleport,简单吧?
那我们下一章再见。
………
………
………
………
虽说全部内容已经完了,但是还是有一些疑问以及一些注意事项。
上面说到过,在新版中,相对坐标和相对旋转角度都统一成以指令执行地点和执行者的旋转角度为基准。但是这句话并不严谨,因为在基岩版中,相对旋转角度还是以传送目标的原先旋转角度为基准来计算的。
有点乱啊,理一理:
JE1.13前,tp的相对坐标和相对旋转角度都以传送目标的为基准,而teleport则反之。
JE1.13之后,tp和teleport均采用指令执行地点和执行者为基准。
基岩版中,tp和teleport的相对坐标均采用以指令执行地点为原点,但相对旋转角度却是以传送目标为基准。
理一理之后确实清楚了许多,但由此就有了一个新的问题:
当相对旋转角度以执行者的为基准时,如果执行者不是个实体而是方块该怎么办,比如命令方块?
本章未完,请点击下一章继续阅读!若浏览器显示没有新章节了,请尝试点击右上角↗️或右下角↘️的菜单,退出阅读模式即可,谢谢!