这些区块还有救吗?有救,只需要在下一次卸载之前,漏斗能提前加载那些区块,就可以将那个区块从卸载表上扯下来,让区块继续运作。
那么,我们就可以选择哈希表靠后的区块,我们就有机会它一直被漏斗加载。
没错,但是你该怎么知道哪个区块在哈希表靠后的地方?
其实哈希表的排序并不是随机的,而是有规律的。哈希表并不是单纯的一个表格,它是由哈希键索引的各种桶组合在一起的。而每一个区块的哈希键,由这个区块的X和Z来决定。也就是说,每个区块的卸载顺序,由这个区块的X和Z来决定。(注:一个区块的XZ为这个区块的中心位置,即在F3调试界面区块坐标XZ都为8的地方。
那么该怎么计算?
我们以世界原点(0,0)举个例子。
首先,游戏会将世界原点的X和Z轴转换成2进制,然后组合在一起,变成一个长8字节的2进制数字。而每个字节由8个2进制数字组成,所以这个8字节的二进制数字,就长达64个位数。即:
0000000000000000000000000000000000000000000000000000000000000000
(实际上这就是典型的64位,即64个位数,这下子你应该知道了这个64和32位操作系统的区别了吧)
然后游戏就会把这串数字交给JAVA处理。JAVA首先会把这个数字分成两半,即:
The content is not finished, continue reading on the next page