本篇教程由作者设定使用 CC BY-NC 协议。
参见minecraft wiki:下界传送门
基础知识:minecraftwiki坐标
“八倍关系”:粗略地说,每在下界移动1格相当于在主世界移动8格。
下界传送门的连接机制较为复杂,但利用好了就大有用处,典型的就是快速旅行和各种多维度刷怪塔。如果你是生电玩家,这个机制真的值得你花时间看懂。
文中的坐标均为方块坐标,并非玩家等实体拥有的带小数的坐标。
如果你并不熟悉这些机制,请一句句认真读,作者已经很努力帮助大家理解了w
一、传送时寻找对应门的机制
1、“对应坐标”
当你在主世界坐标(x,y,z)处进入一个下界传送门时,在下界的“对应坐标”是(floor(x/8),y,floor(z/8));当你在下界坐标(x,y,z)处进入一个下界传送门时,在主世界的“对应坐标”是(8x,y,8z)。其中floor()即向下取整(取小于等于括号内数的最大整数)。从这里我们就能看出主世界与下界的8倍关系,比如你在主世界(403,64,-235)处进入下界传送门,在下界的“对应坐标”就是(50,64,-30)。
2、对应门搜寻范围与选择方式
从主世界进入传送门,找到下界的“对应坐标”后,搜寻传送门的范围如下:每一个y坐标任意,而[x坐标和“对应坐标”的差距与z坐标和“对应坐标”的差距的和不超过16]的方块都在搜寻范围内。如果要从下界传送到主世界,则这个和不超过128(遵循两个纬度之间8倍的关系)。据此,如果你在主世界(32,64,160)处进入传送门,在下界的对应坐标为(4,64,20),则搜寻范围是一个对角线长为16x2+1=33方块的菱形(不要多想,一般不管在哪里,这个菱形都是一样的):
金块即x=4,z=20处(即“对应坐标”),菱形的北角(z坐标负方向)即为x=4,z=4处,西角(x坐标负方向)即为x=-12,z=20处,而西北方的边的中点即为x=-4,z=12处。这些菱形边缘的方块均为[x坐标和金块的差与z坐标和金块的差的和正好为16]的方块。事实上完整的搜寻范围是从世界最低点到最高点(包括下界上层基岩上方),可以看作由这个菱形垒成的几百格高的柱。
要从下界传送到主世界时同理,只不过这个菱形的对角线长变成了128x2+1=257格。
搜寻到所有范围内的传送门后,会把实体传送到离“对应坐标”距离最近的传送门。这里的距离就是一般意义的直线距离。
二、创建传送门
“对应坐标”的搜寻范围内并不是总会有一个传送门,在玩家第一次进入下界时更是如此。在找不到传送门时,游戏会尝试创建一个传送门。尝试创建传送门的范围与上文不同,这里是一个以“对应坐标”为中心的长宽均为33的、从世界底部到顶部(除了下界上层基岩上方的部分,也就是说游戏不会在下界上层基岩上方的部分创建传送门)的长方体(不论在主世界还是下界,这个长方体的长宽都是33,没有遵循8倍的关系),一个上方都有4格空气方块的3x4的可建筑区域是一个有效位置。游戏总会创建一个离“对应坐标”的直线距离尽量近的传送门。如果找不到有效位置,则会在长方体范围内强行创建一个传送门,可能在一堆方块内部,可能在半空中。