天才一秒记住【第一中文网】地址:www.dyzww.cc
讲到)。
如果我们把整个minecraft地图都渲染出来,你就会发现世界边界其实是一个蓝色的正方形,正方形的中心位于世界原点(0.0,0.0),边长为.0米(格)。
而我们通过worldborder指令,就可以修改这个『蓝色正方形』的边长、中心位置和给玩家的效果。
首先,如果我们要修改边长,可以有两种方法:使用add或使用set。
add子命令可以增加或减少世界边界的边长,增加用正数,减少用负数。
如:
\/worldborder add 11
就可以将世界边界的边长增加11米
\/worldborder add -10
就可以将世界边界的边长减少10米
set子命令可以直接将世界边界的边长设置为一个指定的值,比如:
\/worldborder set 10
这将会将世界边界的边长设置为10米。
(注:你最大可以设置世界边界的边长到米)
虽然说add和set子命令是设置世界边界边长的,但确切来说,是设置蓝色『屏障』的边长。
?这两个不是一摸一样吗?
其实世界边界由两部分组成:蓝色的虚假『屏障』,和隐形的真正屏障。
蓝色的虚假屏障并不能拦住玩家,真正能够拦住玩家的,是边长大于等于蓝色屏障的隐形屏障。
隐形屏障构成的隐形正方形,和蓝色屏障构成的蓝色正方形,虽然中心一样,但边长有时并不一样。隐形屏障的边长必须是一个偶数(或奇数,看中心点位置),因为它必须要处在方块的边缘,和方块的网格重叠。而蓝色屏障的边长可以是任意数,也就是说它不一定要处在方块的边缘,它是可以横着穿过边界方块的中点的。
也就是说,隐形屏障的边长必须大于等于蓝色屏障的边长。如果蓝色屏障的边长也是一个偶数(或奇数,看情况),那么两者的边长就一样,也就是互相重叠;但如果蓝色屏障的边长是一个奇数(或偶数,看情况),甚至是一个小数,那么隐形屏障的边长将会是大于蓝色屏障边长的最小偶数(或奇数,也要看情况)。
(其实你不知道也可以的,毕竟minecraft wiki又没记载这东西,这仅仅是作者实验得出的结果而已)
对了,还需要注意一点:使用set子命令时,当你设置的边长是一个大于(2的24次方)的奇数时,最终设置成的边长将会强制变为一个偶数。(Java1.13.2作者实验得出)
为什么呢?可能是因为set子命令的『边长』参数其数据类型是单精度浮点数(下面的原因比较超纲,如果你有兴趣可以看一看),单精度浮点数只有24位的二进制有效数位,也就是说最大只能精确到,也就是2的24次方。对于大于的数字,比如,因为其二进制已经来到了25位,因此必须舍弃掉一些精度,也就是使得从25位开始的位数全部变为0。
在这边,舍弃精度有一个规则:
如果第25位是1,计算机会先看看更高位的情况。如果后面的位数有东西,那就进位(当然我们这边数值还不会达到那么大,因此不需要考虑这种情况)。如果后面没东西,还得看看第24位。如果第24位是0,那么就直接将从25位开始的数位全部变为0,也就是将高于24位的数位全部置零;如果第24位是1,那么也是进位。
比如,其二进制是。可以发现其第25位为1,后面没有更高的位数,24位还是0,因此就会将25位置零,变成,也就是。
又比如,其二进
本章未完,请点击下一章继续阅读!若浏览器显示没有新章节了,请尝试点击右上角↗️或右下角↘️的菜单,退出阅读模式即可,谢谢!