第189章 ,/.

紧接着,我们就可以通过这个结论,来反推出坐标里有一个数值为0的坐标(比如5,0)排序是最靠后的,数值为0的坐标即正东西南北方向。

而我们还可以通过上面的转化过程知道,转化的最大XZ值不能超过,最小也不能小于-。

但是为了让大家更直观的了解区块加载顺序,作者就去计算了以原点为中心,16×16的区块的公式结果并制成了图片,最终结果可以加一下群看(群相册),不嫌麻烦的话.......

也可以前往这个网址查看:a1.qpic.cn/psc?/V12hBLHP1rg0d7/ruAMsa53pVQWN7FLK88i5uzvbLxLD58OVyNzZou1uUu8F0RYkSv9jxcNhY89sjOb*ocTak2*reWHtk36CouBeWGWoNgPtREr6YPKYgR*ZRY!/b&ek=1&kp=1&pt=0&bo=OAQ4BAAAAAABFzA!&tl=3&vuin=&tm=&sce=60-2-2&rf=viewer_4(注意要加http)

这张图片区块颜色越红,结果数字越小,优先级越高;越白,结果数字越大,优先级越低。

而且如果深入研究,还是有很多规律的:

1.其实不难发现,这张图片只看颜色是对称的,而且上下对称,左右对称。

本小章还未完,请点击下一页继续阅读后面精彩内容!

2.很明显就可以发现,这张图片看起来好像很复杂,其实是有层次的——第一层是每个区块(1x1),第二层是每4个区块(4x4),而更巧的是如果以4x4来看待这张图片,就会发现其实只有两种4x4的方形,只不过它们有些被镜像化了。

同时这张图片也证明了我们上面的说法:.....来反推出坐标里有一个数值为0的坐标(比如5,0)排序是最靠后的,数值为0的坐标即正东西南北方向。

说了这么多,区块的卸载顺序大致也搞懂了吧?但是此时又有一个新的问题出现了:如果一个“桶”里装了很多个区块,比如优先量都为0的区块全部装在一个桶里,这该怎么办?

其实也不需要太深究,这些已经够了。

接下来,让我们回到Minecraft。了解了上面这些东西后,下面这些东西就已经很简单了。

我们知道每刻游戏最多卸载掉100个区块,那么我们就可以找100多个没用的优先级高的区块,比如全部找对角线的区块,让它们卸载了再加载,再卸载,不就可以了?

没错,这是一个很棒的想法,实际上区块加载器的原理也差不多就是这样。我们得一直运行100多个加载区块才能让特定区块保持加载。

别担心,这个工程只不过有点耗肝,脑袋配置较低稍微有点肝的话也能做得出来的。

(只不过除了肝,还有亿点耗铁)

大致方法已经敲定了,接下来就是细节了。

我们遇到的第一个问题就是:怎样让那些占哈希表的区块卸载了再加载,再卸载?

很简单,我们可以把旁边的区块也一起用上帮助加载。

我们以下面这个2x1的区块为一个例子:

0,16

你只需要准备两个漏斗和一些方块就可以搞定这个计算结果为0的区块。

参照上面的漏斗加载例子,你需要在0区块在对着16区块的边缘处放一个朝向16区块的漏斗,16区块那边也在对着0区块的边缘处放置一个对着0区块的漏斗,两个漏斗都放置一些物品。

那么这是怎么运作的呢?

假设你已经成功的按照上面的步骤制作出了100个常加载的0区块,那么你就会发现这个的运作原理是这样的:

1.在清除那一刻,0区块被卸载,而16区块继续运作,只不过被打上了死亡标签。

而下一刻,16区块的漏斗激活了0区块,0区块激活后其漏斗又把16区块给拉出了死亡表里。

45秒后,0区块又卸载,16区块漏斗又激活0区块,然后0区块漏斗又加载16区块,两区块又是这么平安无事。

就是这么个原理。

搞定了那100多个常被杀区块后,接下来你就可以来自由的设置你的常加载区块了。

(只不过处在对角线的要加载区块最好还是把里面的设施搬走吧,换一个区块)

假设你要不断加载相邻的4个区块(2x2)该怎么办?

在四个区块的交界处弄一个2x2的漏斗循环。

假设你要搞定相邻的两个区块该怎么办?

照着那100个常被杀区块那样做就行了。

假设你只需要弄好一个区块该怎么办?

很简单,其相邻的4个区块每一个都弄一个朝向该区块的漏斗。

这就是最简单的区块加载器做法。

(事实上还有更高级的维度加载器,通过维度加载器,可以同时加载两个三个甚至个维度,但那个装置更加的复杂)

但这些区块加载器仍然有被卸载的危险。

这个危险不是每45秒的卸载,而是玩家离开那一刻的区块卸载。如果玩家离开那一刻两个区块都同时被卸载。那就糟糕了。

(对了,按下F3+G可以打开区块调试界面,这个时候就可以看见区块的边界了,不再需要按F3一步一步试探)

现在,你已经知道怎么让多个区块同时加载了。如果你经常玩纯生存服务器,那么这个装置肯定会帮到你的自动化机器的,让其挂机也有收益。

只不过腐竹会不会找你算账那就不一定了。